diff options
author | Carlos Garnacho <carlos@gnome.org> | 2009-09-21 19:24:45 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2009-09-21 20:04:22 +0200 |
commit | bfc88240b43885149a99eb0e4a58662133db0b35 (patch) | |
tree | 37c5694bcb043405b2393e3105a4a66cf35c3338 /gdk/x11 | |
parent | d37268c60f6d84d69e669b477209104b204afab1 (diff) | |
download | gtk+-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.c | 13 |
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; |