mirror of
https://github.com/X11Libre/xf86-input-evdev.git
synced 2026-03-26 18:54:30 +00:00
Bug #3913: Suppress kernel-generated repeat events for chording keys.
This commit is contained in:
19
src/evdev.c
19
src/evdev.c
@@ -99,6 +99,22 @@ PostButtonClicks(InputInfoPtr pInfo, int button, int count)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
PostKbdEvent(InputInfoPtr pInfo, struct input_event *ev, int value)
|
||||
{
|
||||
/* filter repeat events for chording keys */
|
||||
if (value == 2 &&
|
||||
(ev->code == KEY_LEFTCTRL || ev->code == KEY_RIGHTCTRL ||
|
||||
ev->code == KEY_LEFTSHIFT || ev->code == KEY_RIGHTSHIFT ||
|
||||
ev->code == KEY_LEFTALT || ev->code == KEY_RIGHTALT ||
|
||||
ev->code == KEY_LEFTMETA || ev->code == KEY_RIGHTMETA ||
|
||||
ev->code == KEY_CAPSLOCK || ev->code == KEY_NUMLOCK ||
|
||||
ev->code == KEY_SCROLLLOCK)) /* XXX windows keys? */
|
||||
return;
|
||||
|
||||
xf86PostKeyboardEvent(pInfo->dev, ev->code + MIN_KEYCODE, value);
|
||||
}
|
||||
|
||||
static void
|
||||
EvdevReadInput(InputInfoPtr pInfo)
|
||||
{
|
||||
@@ -170,8 +186,7 @@ EvdevReadInput(InputInfoPtr pInfo)
|
||||
break;
|
||||
|
||||
default:
|
||||
xf86PostKeyboardEvent(pInfo->dev,
|
||||
ev.code + MIN_KEYCODE, value);
|
||||
PostKbdEvent(pInfo, &ev, value);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user