Skip to content

Commit 0ca0681

Browse files
Liang Yandtor
authored andcommitted
Input: xen-kbdfront - enable auto repeat for xen keyboard frontend driver
Long pressed key could not show right in XEN vncviewer after tigervnc client changed the way how to send repeat keys, from "Down Up Down Up ..." to "Down Down ... Up". This will report autorepeat to input by checking if same key being pressed, and let handler process it finally. Signed-off-by: Liang Yan <lyan@suse.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
1 parent b54bf2f commit 0ca0681

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

drivers/input/misc/xen-kbdfront.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,17 +84,20 @@ static void xenkbd_handle_key_event(struct xenkbd_info *info,
8484
struct xenkbd_key *key)
8585
{
8686
struct input_dev *dev;
87+
int value = key->pressed;
8788

8889
if (test_bit(key->keycode, info->ptr->keybit)) {
8990
dev = info->ptr;
9091
} else if (test_bit(key->keycode, info->kbd->keybit)) {
9192
dev = info->kbd;
93+
if (key->pressed && test_bit(key->keycode, info->kbd->key))
94+
value = 2; /* Mark as autorepeat */
9295
} else {
9396
pr_warn("unhandled keycode 0x%x\n", key->keycode);
9497
return;
9598
}
9699

97-
input_report_key(dev, key->keycode, key->pressed);
100+
input_event(dev, EV_KEY, key->keycode, value);
98101
input_sync(dev);
99102
}
100103

0 commit comments

Comments
 (0)