From f9b5bbaa3a7fce1a4efb2084b8d9d82b98d4ee83 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 8 Mar 2016 15:42:42 +1000 Subject: [PATCH] xkb: fix SlowKeys release/reject beeps Wrong use of the mask here caused a beep whenever a key was rejected but also when it was released after being accepted. Fix the mask to check for the correct enabled controls. Signed-off-by: Peter Hutterer Reviewed-by: Daniel Stone --- xkb/xkbAccessX.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c index 02e820b2d..892cb3097 100644 --- a/xkb/xkbAccessX.c +++ b/xkb/xkbAccessX.c @@ -618,6 +618,7 @@ AccessXFilterReleaseEvent(DeviceEvent *event, DeviceIntPtr keybd) if (ctrls->enabled_ctrls & XkbSlowKeysMask) { xkbAccessXNotify ev; unsigned beep_type; + unsigned mask; ev.keycode = key; ev.slowKeysDelay = ctrls->slow_keys_delay; @@ -625,14 +626,16 @@ AccessXFilterReleaseEvent(DeviceEvent *event, DeviceIntPtr keybd) if (BitIsOn(keybd->key->down, key) || (xkbi->mouseKey == key)) { ev.detail = XkbAXN_SKRelease; beep_type = _BEEP_SLOW_RELEASE; + mask = XkbAX_SKReleaseFBMask; } else { ev.detail = XkbAXN_SKReject; beep_type = _BEEP_SLOW_REJECT; + mask = XkbAX_SKRejectFBMask; ignoreKeyEvent = TRUE; } XkbSendAccessXNotify(keybd, &ev); - if (XkbAX_NeedFeedback(ctrls, XkbAX_SKRejectFBMask)) { + if (XkbAX_NeedFeedback(ctrls, mask)) { XkbDDXAccessXBeep(keybd, beep_type, XkbSlowKeysMask); } if (xkbi->slowKey == key)