--- canvas/source/cairo/cairo_canvashelper.hxx.old	2006-10-09 13:14:09.000000000 +0200
+++ canvas/source/cairo/cairo_canvashelper.hxx	2006-10-09 13:17:49.000000000 +0200
@@ -283,7 +283,7 @@ namespace cairocanvas
             LINE_COLOR, FILL_COLOR, TEXT_COLOR, IGNORE_COLOR
         };
         
-	void drawPolyPolygonPath( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
+	void doPolyPolygonPath( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
 				  Operation aOperation,
 				  const ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::Texture >* pTextures=NULL,
 				  ::cairo::Cairo* pCairo=NULL ) const;
@@ -324,7 +324,7 @@ namespace cairocanvas
 		SurfaceProvider* mpSurfaceProvider;
     };
 
-    void drawPolyPolygonImplementation( ::basegfx::B2DPolyPolygon aPolyPolygon,
+    void doPolyPolygonImplementation( ::basegfx::B2DPolyPolygon aPolyPolygon,
 					Operation aOperation,
 					::cairo::Cairo* pCairo,
 					const ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::Texture >* pTextures=NULL,
--- canvas/source/cairo/cairo_canvashelper.cxx.old	2006-10-09 13:11:48.000000000 +0200
+++ canvas/source/cairo/cairo_canvashelper.cxx	2006-10-09 13:18:37.000000000 +0200
@@ -159,7 +159,7 @@ namespace cairocanvas
 	    aViewMatrix.x0 = round( aViewMatrix.x0 );
 	    aViewMatrix.y0 = round( aViewMatrix.y0 );
 	    cairo_set_matrix( mpCairo, &aViewMatrix );
-	    drawPolyPolygonPath( viewState.Clip, Clip );
+	    doPolyPolygonPath( viewState.Clip, Clip );
 	}
 
 	aCombinedMatrix.x0 = round( aCombinedMatrix.x0 );
@@ -169,7 +169,7 @@ namespace cairocanvas
         if( renderState.Clip.is() ) {
 	    OSL_TRACE ("render clip BEGIN\n");
 
-	    drawPolyPolygonPath( renderState.Clip, Clip );
+	    doPolyPolygonPath( renderState.Clip, Clip );
 	    OSL_TRACE ("render clip END\n");
 	}
 
@@ -709,7 +709,7 @@ namespace cairocanvas
 	cairo_set_matrix( pCairo, &aOrigMatrix );
     }
 
-    void drawPolyPolygonImplementation( ::basegfx::B2DPolyPolygon aPolyPolygon,
+    void doPolyPolygonImplementation( ::basegfx::B2DPolyPolygon aPolyPolygon,
 					Operation aOperation,
 					Cairo* pCairo,
 					const uno::Sequence< rendering::Texture >* pTextures,
@@ -745,7 +745,7 @@ namespace cairocanvas
 		    nY = round( nY );
 		}
 
-		if( aOperation != Clip ) {
+		if( aOperation == Stroke ) {
 		    nX += 0.5;
 		    nY += 0.5;
 		}
@@ -770,7 +770,7 @@ namespace cairocanvas
 			nY = round( nY );
 		    }
 
-		    if( aOperation != Clip ) {
+		    if( aOperation == Stroke ) {
 			nX += 0.5;
 			nY += 0.5;
 		    }
@@ -781,7 +781,7 @@ namespace cairocanvas
 			nBX = aB.getX();
 			nBY = aB.getY();
 
-			if( aOperation != Clip ) {
+			if( aOperation == Stroke ) {
 			    nAX += 0.5;
 			    nAY += 0.5;
 			    nBX += 0.5;
@@ -827,7 +827,7 @@ namespace cairocanvas
 // 	    clipNULL( pCairo );
     }
 
-    void CanvasHelper::drawPolyPolygonPath( const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
+    void CanvasHelper::doPolyPolygonPath( const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
 					    Operation aOperation,
 					    const uno::Sequence< rendering::Texture >* pTextures,
 					    Cairo* pCairo ) const
@@ -837,7 +837,7 @@ namespace cairocanvas
 	if( !pCairo )
 	    pCairo = mpCairo;
 
-	drawPolyPolygonImplementation( aPoly, aOperation, pCairo, pTextures, mpDevice );
+	doPolyPolygonImplementation( aPoly, aOperation, pCairo, pTextures, mpDevice );
     }
 
     uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawPolyPolygon( const rendering::XCanvas* 							pCanvas, 
@@ -856,7 +856,7 @@ namespace cairocanvas
 	    cairo_set_line_width( mpCairo, 1 );
 
 	    useStates( viewState, renderState, true );
-	    drawPolyPolygonPath( xPolyPolygon, Stroke );
+	    doPolyPolygonPath( xPolyPolygon, Stroke );
 	    
 	    cairo_restore( mpCairo );
 	} else
@@ -925,7 +925,7 @@ namespace cairocanvas
 
 	    // TODO(rodo) use LineArray of strokeAttributes
 
-	    drawPolyPolygonPath( xPolyPolygon, Stroke );
+	    doPolyPolygonPath( xPolyPolygon, Stroke );
 
 	    cairo_restore( mpCairo );
 	} else
@@ -986,7 +986,7 @@ namespace cairocanvas
 	    cairo_save( mpCairo );
 
 	    useStates( viewState, renderState, true );
-	    drawPolyPolygonPath( xPolyPolygon, Fill );
+	    doPolyPolygonPath( xPolyPolygon, Fill );
 	    
 	    cairo_restore( mpCairo );
 	} else
@@ -1009,7 +1009,7 @@ namespace cairocanvas
 	    cairo_save( mpCairo );
 
 	    useStates( viewState, renderState, true );
-	    drawPolyPolygonPath( xPolyPolygon, Fill, &textures );
+	    doPolyPolygonPath( xPolyPolygon, Fill, &textures );
 
 	    cairo_restore( mpCairo );
 	}
--- canvas/source/cairo/cairo_spritehelper.cxx.old	2006-10-09 13:25:23.000000000 +0200
+++ canvas/source/cairo/cairo_spritehelper.cxx	2006-10-09 13:25:29.000000000 +0200
@@ -159,7 +159,7 @@ namespace cairocanvas
                             getClip() ));
 
 		    //cairo_reset_clip( pCairo );
-		    drawPolyPolygonImplementation( aClipPoly, Clip, pCairo );
+		    doPolyPolygonImplementation( aClipPoly, Clip, pCairo );
 		}
 
 		OSL_TRACE ("aSize %f x %f\n", aSize.getX(), aSize.getY() );
