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.
This commit is contained in:
Kristian Rietveld 2009-09-15 09:54:34 +02:00
parent e9d732bde7
commit cf80feb3dd

View File

@ -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)