Auto-repeat with evdev 2.2.0
Peter Hutterer
peter.hutterer at who-t.net
Mon Mar 9 21:07:19 PDT 2009
On Mon, Mar 09, 2009 at 11:58:57PM -0400, Marty Jack wrote:
> I suppose, given this realization, one could make an argument that 2.2.0 should have required 1.6.
> Which would render moot the change
> Define MAX_VALUATORS if it's missing to allow for builds against 1.5.
>
> I might try messing with the revert. FWIW I did not notice any other issues.
Does this (untested) patch work?
diff --git a/src/evdev.c b/src/evdev.c
index 04bce96..bc29ac9 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -263,8 +263,17 @@ PostKbdEvent(InputInfoPtr pInfo, struct input_event *ev, int value)
static char warned[KEY_CNT];
/* Filter all repeated events from device.
- We'll do softrepeat in the server */
- if (value == 2)
+ We'll do softrepeat in the server, but only since 1.6 */
+ if (value == 2
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) <= 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? */
+#endif
+ )
return;
if (code > 255)
More information about the xorg
mailing list