Index: cairo_canvashelper.cxx
===================================================================
RCS file: /cvs/gsl/canvas/source/cairo/cairo_canvashelper.cxx,v
retrieving revision 1.7.20.5
diff -u -p -r1.7.20.5 cairo_canvashelper.cxx
--- canvas/source/cairo/cairo_canvashelper.cxx	27 Aug 2007 14:35:48 -0000	1.7.20.5
+++ canvas/source/cairo/cairo_canvashelper.cxx	30 Aug 2007 14:53:58 -0000
@@ -249,7 +249,9 @@ namespace cairocanvas
 
     void CanvasHelper::clear()
     {
-        if( mpCairo ) 
+        OSL_TRACE ("clear whole area: %d x %d\n", maSize.getX(), maSize.getY() );
+
+        if( mpCairo )
         {
             cairo_save( mpCairo );
 
@@ -945,9 +947,8 @@ namespace cairocanvas
 
 	cairo_set_matrix( pCairo, &aOrigMatrix );
 
-// fixme, spec says even clipping polypolygon with zero polygons means NULL clip, but it breaks animations with sprites
-// 	if( aPolyPolygon.count() == 0 && aOperation == Clip )
-// 	    clipNULL( pCairo );
+	if( aPolyPolygon.count() == 0 && aOperation == Clip )
+ 	    clipNULL( pCairo );
     }
 
     void CanvasHelper::doPolyPolygonPath( const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
Index: cairo_spritehelper.cxx
===================================================================
RCS file: /cvs/gsl/canvas/source/cairo/cairo_spritehelper.cxx,v
retrieving revision 1.5
diff -u -p -r1.5 cairo_spritehelper.cxx
--- canvas/source/cairo/cairo_spritehelper.cxx	17 Jul 2007 14:21:52 -0000	1.5
+++ canvas/source/cairo/cairo_spritehelper.cxx	30 Aug 2007 14:53:58 -0000
@@ -122,7 +122,7 @@ namespace cairocanvas
 	const ::basegfx::B2DHomMatrix aTransform( getTransformation() );
 
 	if( isActive() && !::basegfx::fTools::equalZero( fAlpha ) ) {
-	    OSL_TRACE ("CanvasCustomSprite::redraw called\n");
+	    OSL_TRACE ("CanvasCustomSprite::redraw called");
 	    if( pCairo ) {
 		basegfx::B2DVector aSize = getSizePixel();
 		cairo_save( pCairo );
@@ -165,7 +165,7 @@ namespace cairocanvas
 		    doPolyPolygonImplementation( aClipPoly, Clip, pCairo );
 		}
 
-		OSL_TRACE ("aSize %f x %f\n", aSize.getX(), aSize.getY() );
+		OSL_TRACE ("aSize %f x %f position: %f,%f", aSize.getX(), aSize.getY(), fX, fY );
 		cairo_rectangle( pCairo, 0, 0, floor( aSize.getX() ), floor( aSize.getY() ) );
 		cairo_clip( pCairo );
 		cairo_set_matrix( pCairo, &aOrigMatrix );
