[gtk+] gdkwindow: Expose all native windows

commit e90fab2b837ac8585d97a0c07622d03fe27cc120
Author: Alexander Larsson <alexl redhat com>
Date:   Tue May 7 11:46:50 2013 +0200

    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 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 7a9b0c3..a71c0d2 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) &&
-      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;

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]