xkb: only post a XTest release if the XTest device has the button down

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2012-12-04 15:28:14 +10:00
parent c4fee9d2ec
commit 5daa442fe1

View File

@ -732,9 +732,14 @@ ProcessPointerEvent(InternalEvent *ev, DeviceIntPtr mouse)
if (rc != Success)
ErrorF("[xkb] bad sourceid '%d' on button release event.\n",
event->sourceid);
else if (!IsXTestDevice(source, GetMaster(dev, MASTER_POINTER)))
else if (!IsXTestDevice(source, GetMaster(dev, MASTER_POINTER))) {
DeviceIntPtr xtest_device;
xtest_device = GetXTestDevice(GetMaster(dev, MASTER_POINTER));
if (button_is_down(xtest_device, ev->device_event.detail.button, BUTTON_PROCESSED))
XkbFakeDeviceButton(dev, FALSE, event->detail.key);
}
}
if (xkbi)
xkbi->lockedPtrButtons &= ~(1 << (event->detail.key & 0x7));