Fix cairo clipping to client side windows

When updating the clip region on cairo context (due to window changes or
paints of different sizes) we reset the old clip region, but this was
erronously done inside a cairo_save/cairo_restore pair, which made the
reset not take effect.

This fixes bug #592263.
This commit is contained in:
Alexander Larsson 2009-08-25 15:43:52 +02:00
parent c91cb2f71a
commit 7cc8cf2888

View File

@ -4602,11 +4602,11 @@ gdk_window_set_cairo_clip (GdkDrawable *drawable,
if (!private->paint_stack)
{
cairo_reset_clip (cr);
cairo_save (cr);
cairo_identity_matrix (cr);
cairo_reset_clip (cr);
cairo_new_path (cr);
gdk_cairo_region (cr, private->clip_region_with_children);
@ -4619,13 +4619,12 @@ gdk_window_set_cairo_clip (GdkDrawable *drawable,
/* Only needs to clip to region if piggybacking
on an implicit paint pixmap */
cairo_reset_clip (cr);
if (paint->uses_implicit)
{
cairo_save (cr);
cairo_identity_matrix (cr);
cairo_reset_clip (cr);
cairo_new_path (cr);
gdk_cairo_region (cr, paint->region);
cairo_restore (cr);