Hi, > This approach doesn't work, although the problem is different. Input is now > recognized, but unwanted key repeats creep in. For example, I typed "exit" > and > got "exiitt". I tested this several times while typing as accurately and > quickly as I could. > > My theory is that the key releases aren't being detected by the application > until the next key press/release delay, thus effectively leaving the keys > pressed.
Sounds plausible. Then adding a delay after queuing the release events should fix it. Can you try the attached patch (as incremental fix on top of the other three patches)? thanks, Gerd
>From 29f48811c69c9e734ce22894e93852af9c9f9de6 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kra...@redhat.com> Date: Mon, 2 Jun 2014 09:03:21 +0200 Subject: [PATCH] curses: add kbd delay between keydown and keyup events [fixup] --- ui/curses.c | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/curses.c b/ui/curses.c index ff143cf..d8dea9f 100644 --- a/ui/curses.c +++ b/ui/curses.c @@ -304,6 +304,7 @@ static void curses_refresh(DisplayChangeListener *dcl) if (keycode & SHIFT) { qemu_input_event_send_key_number(NULL, SHIFT_CODE, false); } + qemu_input_event_send_key_delay(100); } else { keysym = curses2qemu[chr]; if (keysym == -1) -- 1.8.3.1