dix: ensure EventIsDeliverable has inputMasks set at all times.
For proximity events, the XI2 type is 0 and inputMasks never got set in the preceding condition. As a result, proximity events got never delivered. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
ef9f851057
commit
fc8cfc3a05
|
@ -2326,7 +2326,7 @@ EventIsDeliverable(DeviceIntPtr dev, InternalEvent* event, WindowPtr win)
|
|||
int rc = 0;
|
||||
int filter = 0;
|
||||
int type;
|
||||
OtherInputMasks *inputMasks = NULL;
|
||||
OtherInputMasks *inputMasks = wOtherInputMasks(win);
|
||||
xEvent ev;
|
||||
|
||||
/* XXX: this makes me gag */
|
||||
|
@ -2335,7 +2335,7 @@ EventIsDeliverable(DeviceIntPtr dev, InternalEvent* event, WindowPtr win)
|
|||
((xGenericEvent*)&ev)->extension = IReqCode;
|
||||
((xGenericEvent*)&ev)->evtype = type;
|
||||
filter = GetEventFilter(dev, &ev);
|
||||
if (type && (inputMasks = wOtherInputMasks(win)) &&
|
||||
if (type && inputMasks &&
|
||||
((inputMasks->xi2mask[XIAllDevices][type/8] & filter) ||
|
||||
((inputMasks->xi2mask[XIAllMasterDevices][type/8] & filter) && IsMaster(dev)) ||
|
||||
(inputMasks->xi2mask[dev->id][type/8] & filter)))
|
||||
|
|
Loading…
Reference in New Issue