summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2016-01-05 09:08:21 +0100
committerMichael Stahl <mstahl@redhat.com>2016-01-11 12:43:47 +0000
commitc5f4c528123d6c65b489ac18ab7892bc92866b09 (patch)
tree0f6df3996971049a509f81c0218f73328805c119 /oox
parentcce1320efa93cc42300e457b898d892ca580ddca (diff)
tdf#96674 drawingML import: fix handling of zero width/height lines
(cherry picked from commit 627c2469843c9461b665c4571f1214aca7fc36a4) Change-Id: If3d9f6272031e08ab228cfa58963d60ceede2498 Reviewed-on: https://gerrit.libreoffice.org/21342 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'oox')
-rw-r--r--oox/source/drawingml/shape.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index d7247bee3cee..4a9223fbfb6e 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -510,7 +510,18 @@ Reference< XShape > Shape::createAndInsert(
bool bIsWriter = xModelInfo->supportsService("com.sun.star.text.TextDocument");
for( i = 0; i < nNumPoints; ++i )
{
- const ::basegfx::B2DPoint aPoint( aPoly.getB2DPoint( i ) );
+ basegfx::B2DPoint aPoint( aPoly.getB2DPoint( i ) );
+
+ // Guard against zero width or height.
+ if (i)
+ {
+ const basegfx::B2DPoint& rPreviousPoint = aPoly.getB2DPoint(i - 1);
+ if (aPoint.getX() - rPreviousPoint.getX() == 0)
+ aPoint.setX(aPoint.getX() + 1);
+ if (aPoint.getY() - rPreviousPoint.getX() == 0)
+ aPoint.setY(aPoint.getY() + 1);
+ }
+
if (bIsWriter && bInGroup)
// Writer's draw page is in twips, and these points get passed
// to core without any unit conversion when Writer