diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 597556e837..db7b640312 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -3246,19 +3246,22 @@ _gdk_window_process_updates_recurse_helper (GdkWindow *window, cairo_region_t *clipped_expose_region; GList *l, *children; + if (window->destroyed) + return; + + if (window->alpha == 0 && !gdk_window_has_impl (window)) + return; + clipped_expose_region = cairo_region_copy (expose_region); cairo_region_translate (clipped_expose_region, dx, dy); cairo_region_intersect (clipped_expose_region, window->clip_region); - if (cairo_region_is_empty (clipped_expose_region) || window->destroyed) + if (cairo_region_is_empty (clipped_expose_region)) goto out; if (gdk_window_is_offscreen (window)) gdk_window_add_damage (window, clipped_expose_region); - if (window->alpha == 0 && !gdk_window_has_impl (window)) - goto out; - /* Paint the window before the children, clipped to the window region */ /* While gtk+ no longer handles exposes on anything but native