diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-01-05 09:08:21 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2016-01-18 22:53:24 +0100 |
commit | 548b1bb28950dfed7c095614d913f4daf7c14ec3 (patch) | |
tree | 908eda50dd42b1c416e15d17ec2dea006e452e08 /oox | |
parent | 1c634d2c99a547f285c1579797206568dbd35af4 (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>
(cherry picked from commit c5f4c528123d6c65b489ac18ab7892bc92866b09)
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/drawingml/shape.cxx | 13 |
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 |