xkb: always post XTest button up when the physical button released (#28808)
Regression introduced by commit2decff6393
xkb: ProcesssPointerEvent must work on the VCP if it gets the VCP XTest buttons must be released when a physical button is released. This was fixed in1432785839
, but2decff6393
changed a condition that this code didn't get triggered anymore. "dev" for pointer events is now always the VCP which doesn't have a xkbi struct. So move this condition out and always trigger the XTest released for button events. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Tested-by: Frank Roscher <Frank-Roscher@gmx.net>
This commit is contained in:
parent
b51a1bd276
commit
c4fee9d2ec
|
@ -723,9 +723,6 @@ ProcessPointerEvent(InternalEvent *ev, DeviceIntPtr mouse)
|
||||||
changed |= XkbPointerButtonMask;
|
changed |= XkbPointerButtonMask;
|
||||||
}
|
}
|
||||||
else if (event->type == ET_ButtonRelease) {
|
else if (event->type == ET_ButtonRelease) {
|
||||||
if (xkbi) {
|
|
||||||
xkbi->lockedPtrButtons &= ~(1 << (event->detail.key & 0x7));
|
|
||||||
|
|
||||||
if (IsMaster(dev)) {
|
if (IsMaster(dev)) {
|
||||||
DeviceIntPtr source;
|
DeviceIntPtr source;
|
||||||
int rc;
|
int rc;
|
||||||
|
@ -738,7 +735,9 @@ ProcessPointerEvent(InternalEvent *ev, DeviceIntPtr mouse)
|
||||||
else if (!IsXTestDevice(source, GetMaster(dev, MASTER_POINTER)))
|
else if (!IsXTestDevice(source, GetMaster(dev, MASTER_POINTER)))
|
||||||
XkbFakeDeviceButton(dev, FALSE, event->detail.key);
|
XkbFakeDeviceButton(dev, FALSE, event->detail.key);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
if (xkbi)
|
||||||
|
xkbi->lockedPtrButtons &= ~(1 << (event->detail.key & 0x7));
|
||||||
|
|
||||||
changed |= XkbPointerButtonMask;
|
changed |= XkbPointerButtonMask;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue