mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-09-21 14:24:19 +00:00
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:
parent
c91cb2f71a
commit
7cc8cf2888
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user