diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2020-09-25 17:27:03 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2020-09-25 19:43:29 +0200 |
commit | acc9aead3cc5162379d34a455aa15f7b13907cf1 (patch) | |
tree | 31af1b8012bef98c4c1f5c2889eeb29ee3720564 /oox/source/drawingml/diagram | |
parent | 6965bb07bb33429a7663a3f3ebe58ed89c4327d9 (diff) |
oox smartart: snake algo: consider child's aspect ratio request for cols/rows
If the child's aspect ratio request will shrink the width, then take
that into account when calculating how many rows / cols we need.
This reduces the number of columns for the bugdoc from 4 to 3, which is
needed, but not enough to render it correctly.
Change-Id: I1d02df4834b8a2ce97d5e006db0e3135d3d42917
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103411
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
Diffstat (limited to 'oox/source/drawingml/diagram')
-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 8f261f625d5a..b0aed039ba94 100644 --- a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx +++ b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx @@ -1321,11 +1321,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; } |