diff options
Diffstat (limited to 'canvas/source/cairo/cairo_canvashelper.cxx')
-rw-r--r-- | canvas/source/cairo/cairo_canvashelper.cxx | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/canvas/source/cairo/cairo_canvashelper.cxx b/canvas/source/cairo/cairo_canvashelper.cxx index 924e6f8eb4c4..a7cf165f693d 100644 --- a/canvas/source/cairo/cairo_canvashelper.cxx +++ b/canvas/source/cairo/cairo_canvashelper.cxx @@ -1045,12 +1045,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 +1057,14 @@ 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() ); |