[gtk+] Always report XInput events to the grab window if any.



commit bfc88240b43885149a99eb0e4a58662133db0b35
Author: Carlos Garnacho <carlos gnome org>
Date:   Mon Sep 21 19:24:45 2009 +0200

    Always report XInput events to the grab window if any.
    
    The grab window should be the first option to send events to, else we may
    get unpaired events, making display->ignore_core_events go crazy.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=588649

 gdk/x11/gdkinput-xfree.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)
---
diff --git a/gdk/x11/gdkinput-xfree.c b/gdk/x11/gdkinput-xfree.c
index 24a87f4..50bb94b 100644
--- a/gdk/x11/gdkinput-xfree.c
+++ b/gdk/x11/gdkinput-xfree.c
@@ -256,17 +256,18 @@ _gdk_input_other_event (GdkEvent *event,
   if (event_type == GDK_NOTHING)
     return FALSE;
 
-  window = _gdk_window_get_input_window_for_event (event_window,
-						   event_type,
-						   x, y,
-						   xevent->xany.serial);
   /* If we're not getting any event window its likely because we're outside the
      window and there is no grab. We should still report according to the
      implicit grab though. */
   iw = ((GdkWindowObject *)event_window)->input_window;
-  if (window == NULL)
-    window = iw->button_down_window;
 
+  if (iw->button_down_window)
+    window = iw->button_down_window;
+  else
+    window = _gdk_window_get_input_window_for_event (event_window,
+                                                     event_type,
+                                                     x, y,
+                                                     xevent->xany.serial);
   priv = (GdkWindowObject *)window;
   if (window == NULL)
     return FALSE;



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