From 0d5a509ae50c4c47553c0ac8b2524843a461231b Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Thu, 16 Feb 2012 12:48:00 +0000 Subject: [PATCH] window: Use constant keycode offset of 8 The X11 compositor currently posts its key presses as keycode - 8; this is due to X11 having a historical minimum keycode of 8, whereas evdev is numbered starting from 1. So while the KEY_* constants begin with KEY_ESC at 1, the corresponding keycode in both X11 and the XKB keymaps is 9. window, on the other hand, was relying on xkb->min_key_code being 8 to translate its keycodes back to useful values in the XKB 'evdev' keycode map. min_key_code may not always be 8, for restricted subsets of the keycode map. Perhaps not the best solution, but at least consistent. Signed-off-by: Daniel Stone --- clients/window.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clients/window.c b/clients/window.c index 7fc35d8..b7aa7ba 100644 --- a/clients/window.c +++ b/clients/window.c @@ -1553,7 +1553,7 @@ input_handle_key(void *data, struct wl_input_device *input_device, struct display *d = input->display; uint32_t code, sym, level; - code = key + d->xkb->min_key_code; + code = key + 8; if (!window || window->keyboard_device != input) return; -- 2.7.4