diff options
Diffstat (limited to 'oox/source/drawingml/diagram/diagramlayoutatoms.cxx')
-rw-r--r-- | oox/source/drawingml/diagram/diagramlayoutatoms.cxx | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx index 6175832a426d..3ab17ec6904a 100644 --- a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx +++ b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx @@ -1322,11 +1322,18 @@ void AlgAtom::layoutShape(const ShapePtr& rShape, const std::vector<Constraint>& nRow = nCount; else { + double fShapeHeight = rShape->getSize().Height; + double fShapeWidth = rShape->getSize().Width; + // Check if we have a child aspect ratio. If so, need to shrink one dimension to + // achieve that ratio. + if (fChildAspectRatio && fShapeHeight && fChildAspectRatio < (fShapeWidth/fShapeHeight)) + { + fShapeWidth = fShapeHeight * fChildAspectRatio; + } + for ( ; nRow<nCount; nRow++) { nCol = (nCount+nRow-1) / nRow; - const double fShapeHeight = rShape->getSize().Height; - const double fShapeWidth = rShape->getSize().Width; if ((fShapeHeight / nCol) / (fShapeWidth / nRow) >= fAspectRatio) break; } |