summaryrefslogtreecommitdiff
path: root/canvas/source/cairo/cairo_canvashelper.cxx
diff options
context:
space:
mode:
authorRadek Doulik <rodo@novell.com>2012-08-20 12:54:37 +0200
committerRadek Doulik <rodo@novell.com>2012-10-15 15:35:25 +0200
commit707efee607b3f30ff6e4baaee6a09ac8d216cbba (patch)
treefc1e90cd46730e1ed8a523ed7384a6702bf8bf5d /canvas/source/cairo/cairo_canvashelper.cxx
parent8899b7ca2ae3987189243fda460aebb18f84d8ed (diff)
fill whole polypolygon at once, so that fill rule is applied correctly
- fixes rest of n#759172 Change-Id: I6c2694bf8276337b7d1fa54a12867bfc2b658a23
Diffstat (limited to 'canvas/source/cairo/cairo_canvashelper.cxx')
-rw-r--r--canvas/source/cairo/cairo_canvashelper.cxx14
1 files changed, 7 insertions, 7 deletions
diff --git a/canvas/source/cairo/cairo_canvashelper.cxx b/canvas/source/cairo/cairo_canvashelper.cxx
index 924e6f8eb4c4..1b058b519903 100644
--- a/canvas/source/cairo/cairo_canvashelper.cxx
+++ b/canvas/source/cairo/cairo_canvashelper.cxx
@@ -1044,13 +1044,6 @@ namespace cairocanvas
if( aPolygon.isClosed() )
cairo_close_path( pCairo );
-
- if( aOperation == Fill && pTextures )
- {
- cairo_set_matrix( pCairo, &aOrigMatrix );
- doOperation( aOperation, pCairo, pTextures, pDevice, aPolyPolygon.getB2DRange() );
- cairo_set_matrix( pCairo, &aIdentityMatrix );
- }
}
else
{
@@ -1063,6 +1056,13 @@ namespace cairocanvas
}
}
}
+
+ if( aOperation == Fill && pTextures )
+ {
+ cairo_set_matrix( pCairo, &aOrigMatrix );
+ doOperation( aOperation, pCairo, pTextures, pDevice, aPolyPolygon.getB2DRange() );
+ cairo_set_matrix( pCairo, &aIdentityMatrix );
+ }
if( bOpToDo && ( aOperation != Fill || !pTextures ) )
doOperation( aOperation, pCairo, pTextures, pDevice, aPolyPolygon.getB2DRange() );