summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorMarco Cecchetti <marco.cecchetti@collabora.com>2017-05-22 12:57:38 +0200
committerJan Holesovsky <kendy@collabora.com>2017-05-22 14:30:30 +0200
commit877b605bf519f20179e5de1beb5bb16cd431aa89 (patch)
treed0e10d3f63582582a71ce2aa0b9a9de911b0709a /filter
parent61af27e2b8041aac756b2f49cc2c31e5578a638b (diff)
tdf#107998 - svg export: shapes are uncorrect both in Draw and Impress
Start Draw, draw a rectangle, export it to a SVG document. Open the SVG document with a browser or Inkscape: instead of a rectangle, you will see a self-crossing polygon. This issue is due to a clean up commit (9d8c206ee4a5c130e11a4e786b4286f3362f9ca1) about string concatenation which has not taken into account that operations are performed from right to left. Change-Id: Ib1c0d872b6bd95abe98bb5e22ef69f6b2d5c163b Reviewed-on: https://gerrit.libreoffice.org/37899 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
Diffstat (limited to 'filter')
-rw-r--r--filter/source/svg/svgwriter.cxx11
1 files changed, 8 insertions, 3 deletions
diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx
index 93329daf02f9..c9a9115bb509 100644
--- a/filter/source/svg/svgwriter.cxx
+++ b/filter/source/svg/svgwriter.cxx
@@ -1816,8 +1816,9 @@ OUString SVGActionWriter::GetPathString( const tools::PolyPolygon& rPolyPoly, bo
if( nSize > 1 )
{
+ aPolyPoint = rPoly[ 0 ];
aPathData += "M "
- + OUString::number( ( aPolyPoint = rPoly[ 0 ] ).X() )
+ + OUString::number( aPolyPoint.X() )
+ aComma
+ OUString::number( aPolyPoint.Y() );
@@ -1838,7 +1839,9 @@ OUString SVGActionWriter::GetPathString( const tools::PolyPolygon& rPolyPoly, bo
{
if ( j )
aPathData += aBlank;
- aPathData += OUString::number( ( aPolyPoint = rPoly[ n++ ] ).X() )
+
+ aPolyPoint = rPoly[ n++ ];
+ aPathData += OUString::number( aPolyPoint.X() )
+ aComma
+ OUString::number( aPolyPoint.Y() );
}
@@ -1850,7 +1853,9 @@ OUString SVGActionWriter::GetPathString( const tools::PolyPolygon& rPolyPoly, bo
nCurrentMode = 'L';
aPathData += "L ";
}
- aPathData += OUString::number( ( aPolyPoint = rPoly[ n++ ] ).X() )
+
+ aPolyPoint = rPoly[ n++ ];
+ aPathData += OUString::number( aPolyPoint.X() )
+ aComma
+ OUString::number( aPolyPoint.Y() );
}