mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-11 03:10:09 +00:00
Don't remove composited childrens area when processing updates
Handle shape when processing updates Make sure we reset the old clips before setting new cairo clips
This commit is contained in:
parent
890503099f
commit
a38e797941
@ -3986,6 +3986,8 @@ gdk_window_set_cairo_clip (GdkDrawable *drawable,
|
||||
{
|
||||
cairo_save (cr);
|
||||
cairo_identity_matrix (cr);
|
||||
|
||||
cairo_reset_clip (cr);
|
||||
|
||||
cairo_new_path (cr);
|
||||
gdk_cairo_region (cr, private->clip_region);
|
||||
@ -4004,6 +4006,8 @@ gdk_window_set_cairo_clip (GdkDrawable *drawable,
|
||||
cairo_save (cr);
|
||||
cairo_identity_matrix (cr);
|
||||
|
||||
cairo_reset_clip (cr);
|
||||
|
||||
cairo_new_path (cr);
|
||||
gdk_cairo_region (cr, paint->region);
|
||||
cairo_restore (cr);
|
||||
@ -4166,7 +4170,7 @@ gdk_window_process_updates_recurse (GdkWindow *window,
|
||||
{
|
||||
child = l->data;
|
||||
|
||||
if (!GDK_WINDOW_IS_MAPPED (child) || child->input_only)
|
||||
if (!GDK_WINDOW_IS_MAPPED (child) || child->input_only || child->composited)
|
||||
continue;
|
||||
|
||||
/* Ignore offscreen children, as they don't draw in their parent and
|
||||
@ -4180,7 +4184,9 @@ gdk_window_process_updates_recurse (GdkWindow *window,
|
||||
r.height = child->height;
|
||||
|
||||
child_region = gdk_region_rectangle (&r);
|
||||
|
||||
if (child->shape)
|
||||
gdk_region_intersect (child_region, child->shape);
|
||||
|
||||
if (child->impl == private->impl)
|
||||
{
|
||||
/* Client side child, expose */
|
||||
|
Loading…
Reference in New Issue
Block a user