dix: take grabs into account for XI_Enter/Leave events.
This commit is contained in:
parent
1815defdb2
commit
10b5e98101
16
dix/events.c
16
dix/events.c
|
@ -4182,7 +4182,6 @@ DeviceEnterLeaveEvent(
|
|||
{
|
||||
GrabPtr grab = mouse->deviceGrab.grab;
|
||||
xXIEnterEvent *event;
|
||||
Mask mask;
|
||||
int filter;
|
||||
int btlen, len, i;
|
||||
DeviceIntPtr kbd;
|
||||
|
@ -4223,19 +4222,22 @@ DeviceEnterLeaveEvent(
|
|||
|
||||
FixUpEventFromWindow(mouse, (xEvent*)event, pWin, None, FALSE);
|
||||
|
||||
|
||||
if (!GetWindowXI2Mask(mouse, pWin, (xEvent*)event))
|
||||
return;
|
||||
|
||||
filter = GetEventFilter(mouse, (xEvent*)event);
|
||||
mask = 0x0; /* FIXME: we should handle grabs, once we can */
|
||||
|
||||
if (grab)
|
||||
{
|
||||
Mask mask;
|
||||
mask = grab->xi2mask[XIAllDevices][type/8] |
|
||||
grab->xi2mask[XIAllMasterDevices][type/8] |
|
||||
grab->xi2mask[mouse->id][type/8];
|
||||
TryClientEvents(rClient(grab), mouse, (xEvent*)event, 1, mask,
|
||||
filter, grab);
|
||||
else
|
||||
} else {
|
||||
if (!GetWindowXI2Mask(mouse, pWin, (xEvent*)event))
|
||||
return;
|
||||
DeliverEventsToWindow(mouse, pWin, (xEvent*)event, 1, filter,
|
||||
NullGrab);
|
||||
}
|
||||
xfree(event);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue