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

Reply via email to