Your message dated Tue, 07 Feb 2012 13:47:44 +0400
with message-id <[email protected]>
and subject line Re: Bug#441068: qemu: Keyboard problems in DOS : Caps Lock not 
working, Extended key events doubled. in VNC:, Alt Gr not working, ntilde not 
working
has caused the Debian Bug report #441068,
regarding qemu: Keyboard problems in DOS : Caps Lock not working, Extended key 
events doubled. in VNC:, Alt Gr not working, ntilde not working
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
441068: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=441068
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: qemu
Version: 0.9.0+20070816-1
Severity: important
Tags: patch

In DOS:
        -Caps lock events are doubled (so, no efect for caps lock)
        -Extended keyboard events are doubled: double up, double down



In vnc mode:
        -Alt Gr is not well captured
        -ntilde does not work



A patch is attached to solve this problems. It also integrate a new
system to add extra keys without modifying the code (again)


         Regards.



-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.20-1-686 (SMP w/2 CPU cores)
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages qemu depends on:
ii  bochsbios          2.3+20070705-2        BIOS for the Bochs emulator
ii  libasound2         1.0.14a-2             ALSA library
ii  libc6              2.6.1-2               GNU C Library: Shared libraries
ii  libncurses5        5.6+20070825-1        Shared libraries for terminal hand
ii  libsdl1.2debian    1.2.11-9              Simple DirectMedia Layer
ii  openbios-sparc     1.0~alpha2+20070816-1 SPARC Open Firmware
ii  openhackware       0.4.1-2               OpenFirmware emulator for PowerPC
ii  proll              18-2                  JavaStation PROM 2.x compatible re
ii  vgabios            0.6a-2                VGA BIOS software for the Bochs an
ii  zlib1g             1:1.2.3.3.dfsg-5      compression library - runtime

Versions of packages qemu recommends:
ii  debootstrap                   1.0.3      Bootstrap a basic Debian system
ii  sharutils                     1:4.6.3-1  shar, unshar, uuencode, uudecode
pn  vde2                          <none>     (no description available)

-- no debconf information
? backup-082720072326-pre-qemu.tgz
? description-pak
? doc-pak
? qemu_20070827-1_i386.deb
Index: keymaps.c
===================================================================
RCS file: /sources/qemu/qemu/keymaps.c,v
retrieving revision 1.2
diff -u -r1.2 keymaps.c
--- keymaps.c	30 Apr 2006 21:28:35 -0000	1.2
+++ keymaps.c	28 Aug 2007 04:08:17 -0000
@@ -24,7 +24,14 @@
 
 static int get_keysym(const char *name)
 {
+    unsigned int keysym;
     name2keysym_t *p;
+   
+    //User numerical added keysyms
+    if (1==sscanf(name,"0x%x",&keysym))
+            return keysym;
+    
+    //Normal ones
     for(p = name2keysym; p->name != NULL; p++) {
         if (!strcmp(p->name, name))
             return p->keysym;
Index: sdl.c
===================================================================
RCS file: /sources/qemu/qemu/sdl.c,v
retrieving revision 1.42
diff -u -r1.42 sdl.c
--- sdl.c	21 Jun 2007 21:08:02 -0000	1.42
+++ sdl.c	28 Aug 2007 04:09:19 -0000
@@ -201,9 +201,9 @@
         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;
     }
 
Index: vnc_keysym.h
===================================================================
RCS file: /sources/qemu/qemu/vnc_keysym.h,v
retrieving revision 1.2
diff -u -r1.2 vnc_keysym.h
--- vnc_keysym.h	7 Jan 2007 17:12:41 -0000	1.2
+++ vnc_keysym.h	28 Aug 2007 04:10:12 -0000
@@ -215,6 +215,7 @@
 {"Shift_R", 0xffe2},   /* XK_Shift_R */
 {"Super_L", 0xffeb},   /* XK_Super_L */
 {"Super_R", 0xffec},   /* XK_Super_R */
+{"ISO_Level3_Shift", 0xfe03}, /* ISO_Level3
 
     /* special keys */
 {"BackSpace", 0xff08}, /* XK_BackSpace */
Index: hw/ps2.c
===================================================================
RCS file: /sources/qemu/qemu/hw/ps2.c,v
retrieving revision 1.6
diff -u -r1.6 ps2.c
--- hw/ps2.c	20 Mar 2007 16:45:27 -0000	1.6
+++ hw/ps2.c	28 Aug 2007 04:12:48 -0000
@@ -146,17 +146,24 @@
     PS2State *s = (PS2State *)opaque;
     PS2Queue *q;
     int val, index;
+    static int flag=0;
     
     q = &s->queue;
     if (q->count == 0) {
+	if (!flag){
+	   index=q->rptr - 1;
+	   flag=1;
+	}
+	else index=q->rptr - 2;
         /* NOTE: if no data left, we return the last keyboard one
            (needed for EMM386) */
         /* XXX: need a timer to do things correctly */
-        index = q->rptr - 1;
         if (index < 0)
-            index = PS2_QUEUE_SIZE - 1;
+            index += PS2_QUEUE_SIZE;
+
         val = q->data[index];
     } else {
+	flag=0;
         val = q->data[q->rptr];
         if (++q->rptr == PS2_QUEUE_SIZE)
             q->rptr = 0;
Index: keymaps/es
===================================================================
RCS file: /sources/qemu/qemu/keymaps/es,v
retrieving revision 1.1
diff -u -r1.1 es
--- keymaps/es	12 Dec 2004 16:56:30 -0000	1.1
+++ keymaps/es	28 Aug 2007 04:13:57 -0000
@@ -71,6 +71,8 @@
 Lstroke 0x26 shift altgr
 ntilde 0x27
 Ntilde 0x27 shift
+0xfff1 0x27
+0xffd1 0x27 shift
 dead_doubleacute 0x27 shift altgr
 dead_acute 0x28
 dead_diaeresis 0x28 shift
Index: keymaps/modifiers
===================================================================
RCS file: /sources/qemu/qemu/keymaps/modifiers,v
retrieving revision 1.2
diff -u -r1.2 modifiers
--- keymaps/modifiers	1 Mar 2005 21:43:42 -0000	1.2
+++ keymaps/modifiers	28 Aug 2007 04:13:59 -0000
@@ -3,6 +3,7 @@
 
 Alt_R 0xb8
 Mode_switch 0xb8
+ISO_Level3_Shift 0xb8
 Alt_L 0x38
 
 Control_R 0x9d

--- End Message ---
--- Begin Message ---
Version: 0.11.0-1

On 06.09.2007 17:38, Ricardo Ribalda Delgado wrote:
> Package: qemu
> Version: 0.9.0+20070816-1
> Severity: important
> Tags: patch
> 
> In DOS:
>       -Caps lock events are doubled (so, no efect for caps lock)
>       -Extended keyboard events are doubled: double up, double down
> 
> In vnc mode:
>       -Alt Gr is not well captured
>       -ntilde does not work

This has been fixed in upstream version 0.11:

commit 74b1b0c1f5aa231be4d41bdbcd2c7ddd00c1e27e
Author: aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Date:   Mon Feb 9 23:19:32 2009 +0000

    Fix AltGr and dead keys with VNC

    (Marcel Zumstein)

http://git.qemu.org/?p=qemu.git;a=commit;h=74b1b0c1f5aa231be4d41bdbcd2c7ddd00c1e27e

So closing this bugreport now.

> A patch is attached to solve this problems. It also integrate a new
> system to add extra keys without modifying the code (again)

The upstream patch did not address this extra functionality.

Thanks!

/mjt


--- End Message ---

Reply via email to