summaryrefslogtreecommitdiff
path: root/gdk/x11
diff options
context:
space:
mode:
authorCarlos Garnacho <carlos@gnome.org>2009-09-21 19:24:45 +0200
committerAlexander Larsson <alexl@redhat.com>2009-09-21 20:04:22 +0200
commitbfc88240b43885149a99eb0e4a58662133db0b35 (patch)
tree37c5694bcb043405b2393e3105a4a66cf35c3338 /gdk/x11
parentd37268c60f6d84d69e669b477209104b204afab1 (diff)
downloadgtk+-bfc88240b43885149a99eb0e4a58662133db0b35.tar.gz
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
Diffstat (limited to 'gdk/x11')
-rw-r--r--gdk/x11/gdkinput-xfree.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/gdk/x11/gdkinput-xfree.c b/gdk/x11/gdkinput-xfree.c
index 24a87f459f..50bb94b5da 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;