dix: don't attempt to deliver an event for a different grabtype
For an active grab, grab->eventMask can be either the core or the XI1 mask. With the overlap of event filters, calling DeliverOneGrabbedEvent(XI1) for a ProximityOut event will trigger if the client has selected for enter events - the filter is the same for both. Thus, we end up delivering a proximity event to a client not expecting one. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
6159811a1a
commit
78944d62ff
|
@ -4142,6 +4142,9 @@ DeliverOneGrabbedEvent(InternalEvent *event, DeviceIntPtr dev,
|
|||
GrabPtr grab = grabinfo->grab;
|
||||
Mask filter;
|
||||
|
||||
if (grab->grabtype != level)
|
||||
return 0;
|
||||
|
||||
switch (level) {
|
||||
case XI2:
|
||||
rc = EventToXI2(event, &xE);
|
||||
|
|
Loading…
Reference in New Issue