summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2013-05-07 11:46:50 +0200
committerAlexander Larsson <alexl@redhat.com>2013-05-07 11:46:50 +0200
commitda0cf5fbffdb668ee342cd1c738978d4edbc5421 (patch)
tree5355a6bd1b524071c9084b6aeab2a22a48cf92be
parentc60395cfc96db6e236f18aa3cd6d702416a8c834 (diff)
downloadgtk+-da0cf5fbffdb668ee342cd1c738978d4edbc5421.tar.gz
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.
-rw-r--r--gdk/gdkwindow.c8
1 files changed, 7 insertions, 1 deletions
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;