From b9b05283bf34f67ee7f3b1aa671a2d657661715d Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Fri, 12 Oct 2012 00:30:58 +0200 Subject: [PATCH] uterm: input: fix stopping key-repeats on key-up A key-repeat is about keycodes, not keysyms. We repeat the keycode and the events that are generated by it, so we must also stop repeating if the given keycode is released. This fixes a bug where a key would still be repeated if we press: - - - Reported-by: Ran Benita Signed-off-by: David Herrmann --- src/uterm_input_uxkb.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/uterm_input_uxkb.c b/src/uterm_input_uxkb.c index d72bc07..77d3085 100644 --- a/src/uterm_input_uxkb.c +++ b/src/uterm_input_uxkb.c @@ -214,10 +214,7 @@ int uxkb_dev_process(struct uterm_input_dev *dev, } if (key_state == KEY_RELEASED && - dev->repeat_event.num_syms == num_keysyms && - !memcmp(dev->repeat_event.keysyms, - keysyms, - sizeof(uint32_t) * num_keysyms)) { + dev->repeat_event.keycode == code) { ev_timer_update(dev->repeat_timer, NULL); } else if (key_state == KEY_PRESSED && xkb_key_repeats(keymap, keycode)) { -- 2.7.4