qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] wrong behaviour of caps lock


From: Stefan Weil
Subject: Re: [Qemu-devel] wrong behaviour of caps lock
Date: Sat, 17 Apr 2010 11:59:48 +0200
User-agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090707)

Benjamin Drung schrieb:
> Hi,
>
> We applied the attached patch in Ubuntu to fix the wrong behavior of
> caps lock.
>
> Initial bug report: https://launchpad.net/bugs/427612
>
> Testcase: Select German NEO 2 as keyboard layout and press "caps lock" +
> "l". Then a "-" should appear instead of a "t".

>From bb212d2b23bee1abe52db53231caccc1a6a27791 Mon Sep 17 00:00:00 2001
From: Shahar Havivi <address@hidden>
Date: Fri, 12 Feb 2010 00:00:44 +0200
Subject: [PATCH] Qemu does not pass pressed capslock to client

---
sdl.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/sdl.c b/sdl.c
index cf27ad2..9074641 100644
--- a/sdl.c
+++ b/sdl.c
@@ -390,9 +390,11 @@ static void sdl_process_key(SDL_KeyboardEvent *ev)
break;
case 0x45: /* num lock */
case 0x3a: /* caps lock */
- /* SDL does not send the key up event, so we generate it */
- kbd_put_keycode(keycode);
- kbd_put_keycode(keycode | 0x80);
+ if (ev->type == SDL_KEYUP) {
+ kbd_put_keycode(keycode | 0x80);
+ } else {
+ kbd_put_keycode(keycode);
+ }
return;
}

-- 
1.6.3.3

Hi,

I can confirm that caps lock shows wrong behavior in
the vga console. It works in monitor and serial console.

The patch improves the wrong behavior for vga
without changing the behavior for monitor and serial
console.

Nevertheless, some problems remain:

* The patch does not apply cleanly to current git master.

* Macro SCANCODE_UP should be used instead of 0x80.
  (That's already a problem in the current code).

* Removing the special cases for num lock and caps lock
  and the related code has the same effect as the patch
  (and is therefor the better solution).

Even with the patch applied, there remains an additional
problem:

QEMU changes num lock / caps lock states only when the
key is pressed / released while QEMU's sdl windows has
the input focus.

Users expect that any application window respects the
systems num lock / caps lock state, so we still need a
patch which synchronizes QEMU's state with the host's
state in any case - even without input focus.

Regards,
Stefan





reply via email to

[Prev in Thread] Current Thread [Next in Thread]