diff options
author | Alexander Larsson <alexl@redhat.com> | 2013-05-07 11:46:50 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2013-05-07 16:40:24 +0200 |
commit | e90fab2b837ac8585d97a0c07622d03fe27cc120 (patch) | |
tree | 53022a1035d74c7e0ba9b421d68d643b94ca9d6b | |
parent | e2c8a95af6d223df65b6dc62a85b696c5de1441b (diff) | |
download | gtk+-e90fab2b837ac8585d97a0c07622d03fe27cc120.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.c | 8 |
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; |