From da0cf5fbffdb668ee342cd1c738978d4edbc5421 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Tue, 7 May 2013 11:46:50 +0200 Subject: [PATCH] gdkwindow: Expose all native windows We need to send exposes for all native windows, even the ones without an exposure mask set, because otherwise non-native children of the native window with an exposure mask will not be drawn. --- gdk/gdkwindow.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 7a9b0c3657..a71c0d272f 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -3334,7 +3334,13 @@ _gdk_window_process_updates_recurse (GdkWindow *window, if (!cairo_region_is_empty (clipped_expose_region) && !window->destroyed) { - if (window->event_mask & GDK_EXPOSURE_MASK) + /* While gtk+ no longer handles exposes on anything but native + window we still have to send them to all windows that have the + event mask set for backwards compat. We also need to send + it to all native windows, even if they don't specify the + expose mask, because they may have non-native children that do. */ + if (gdk_window_has_impl (window) || + window->event_mask & GDK_EXPOSURE_MASK) { GdkEvent event;