diff options
Diffstat (limited to 'xkb/xkbActions.c')
-rw-r--r-- | xkb/xkbActions.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c index d1149a196..b4b839558 100644 --- a/xkb/xkbActions.c +++ b/xkb/xkbActions.c @@ -634,6 +634,14 @@ _XkbFilterPointerBtn( XkbSrvInfoPtr xkbi, } xkbi->lockedPtrButtons&= ~(1<<button); + if (IsMaster(xkbi->device)) + { + XkbMergeLockedPtrBtns(xkbi->device); + /* One SD still has lock set, don't post event */ + if ((xkbi->lockedPtrButtons & (1 << button)) != 0) + break; + } + /* fallthrough */ case XkbSA_PtrBtn: XkbFakeDeviceButton(xkbi->device, 0, button); |