[gtk+] Do not test the event mask of implicit grabs
- From: Kristian Rietveld <kristian src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+] Do not test the event mask of implicit grabs
- Date: Wed, 16 Sep 2009 06:54:31 +0000 (UTC)
commit cf80feb3dd4d458bc82a7cc023007ad39f3d781e
Author: Kristian Rietveld <kris gtk org>
Date: Tue Sep 15 09:54:34 2009 +0200
Do not test the event mask of implicit grabs
The quartz backend simulates the semantics of XGrabPointer, as a part of
this it checks the event mask of the grab. However, implicit grabs on X
do not go through XGrabPointer and thus the quartz backend should not check
the event mask for these. This fixes various "the UI got stuck" cases.
gdk/quartz/gdkevents-quartz.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c
index fc2be16..5be38b4 100644
--- a/gdk/quartz/gdkevents-quartz.c
+++ b/gdk/quartz/gdkevents-quartz.c
@@ -498,7 +498,11 @@ find_window_for_ns_event (NSEvent *nsevent,
grab = _gdk_display_get_last_pointer_grab (display);
if (grab)
{
- if ((grab->event_mask & get_event_mask_from_ns_event (nsevent)) == 0)
+ /* Implicit grabs do not go through XGrabPointer and thus the
+ * event mask should not be checked.
+ */
+ if (!grab->implicit
+ && (grab->event_mask & get_event_mask_from_ns_event (nsevent)) == 0)
return NULL;
if (grab->owner_events)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]