diff options
author | Adam Jackson <ajax@redhat.com> | 2008-08-07 09:21:26 +0930 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2008-08-07 09:36:02 +0930 |
commit | c1f7f8c3d22ecae7839f82ea8b584069f54f1f5e (patch) | |
tree | 74a0285d6065314492f33fac2c1529f01b3670d6 | |
parent | Adding a function to map button events to button numbers. (diff) | |
download | xf86-input-evdev-c1f7f8c3d22ecae7839f82ea8b584069f54f1f5e.tar.gz xf86-input-evdev-c1f7f8c3d22ecae7839f82ea8b584069f54f1f5e.tar.bz2 xf86-input-evdev-c1f7f8c3d22ecae7839f82ea8b584069f54f1f5e.zip |
Print a warning if a keycode exceeds the range accepted by the server.
Keycodes over 255 are silently ignored in the server. The least we can do is
put a warning in the logs.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | src/evdev.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/evdev.c b/src/evdev.c index 9c15d5b..bbabb56 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -146,6 +146,9 @@ PostButtonClicks(InputInfoPtr pInfo, int button, int count) static void PostKbdEvent(InputInfoPtr pInfo, struct input_event *ev, int value) { + int code = ev->code + MIN_KEYCODE; + static char warned[KEY_MAX]; + /* filter repeat events for chording keys */ if (value == 2 && (ev->code == KEY_LEFTCTRL || ev->code == KEY_RIGHTCTRL || @@ -156,7 +159,14 @@ PostKbdEvent(InputInfoPtr pInfo, struct input_event *ev, int value) ev->code == KEY_SCROLLLOCK)) /* XXX windows keys? */ return; - xf86PostKeyboardEvent(pInfo->dev, ev->code + MIN_KEYCODE, value); + if (code > 255 && ev->code < KEY_MAX) { + if (!warned[ev->code]) + xf86Msg(X_WARNING, "%s: unable to handle keycode %d\n", + pInfo->name, ev->code); + warned[ev->code] = 1; + } + + xf86PostKeyboardEvent(pInfo->dev, code, value); } #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3 |