[gtk+/client-side-windows: 185/284] Don't ignore native CROSSING_GRAB/UNGRAB events



commit 5ca1865f5d71f1983f6ed7ad51dde40e63784cd9
Author: Alexander Larsson <alexl redhat com>
Date:   Mon Jan 26 20:50:56 2009 +0100

    Don't ignore native CROSSING_GRAB/UNGRAB events
    
    These are sent when someone else grabs the pointer, and we don't
    want to miss these expose events. For instance, we missed enter
    and leave events on alt-tab.
    
    There were some issues with these wrt out-of-sync grab information
    in the client, but that should now be handled. So, it should work
    or at least be fixable if we find some bug.
---
 gdk/gdkwindow.c |   26 --------------------------
 1 files changed, 0 insertions(+), 26 deletions(-)

diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 6e96be9..2188c27 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -8510,32 +8510,6 @@ _gdk_windowing_got_event (GdkDisplay *display,
       return;
     }
 
-  if ((event->type == GDK_ENTER_NOTIFY ||
-       event->type == GDK_LEAVE_NOTIFY) &&
-      (event->crossing.mode == GDK_CROSSING_GRAB ||
-       event->crossing.mode == GDK_CROSSING_UNGRAB))
-    {
-      /* We synthesize all crossing events due to grabs are synthesized,
-       * so we ignore the native ones. This is partly to get easier non-X
-       * portability, and because of problems with race conditions due to
-       * the cached state in the client and the real state in the xserver
-       * when grabbing.
-       */
-
-      /* We ended up in this window after some (perhaps other clients)
-	 grab, so update the toplevel_under_window state */
-      if (event->type == GDK_ENTER_NOTIFY &&
-	  event->crossing.mode == GDK_CROSSING_UNGRAB)
-	{
-	  if (display->pointer_info.toplevel_under_pointer)
-	    g_object_unref (display->pointer_info.toplevel_under_pointer);
-	  display->pointer_info.toplevel_under_pointer = g_object_ref (event_window);
-	}
-      
-      unlink_event = TRUE;
-      goto out;
-    }
-  
   /* Store last pointer window and position/state */
   if (event->type == GDK_ENTER_NOTIFY &&
       event->crossing.detail != GDK_NOTIFY_INFERIOR)



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