qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] gtk: Support keyboard translation for hosts run


From: Stefan Weil
Subject: Re: [Qemu-devel] [PATCH] gtk: Support keyboard translation for hosts running Windows
Date: Sun, 19 Jan 2014 22:18:47 +0100
User-agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

Am 10.01.2014 20:02, schrieb Stefan Weil:
> Am 18.12.2013 19:14, schrieb Stefan Weil:
>> Am 07.12.2013 16:25, schrieb Stefan Weil:
>>> GTK uses different hardware keycodes on Windows hosts, so some special
>>> handling is needed to get the QEMU keycode.
>>>
>>> Signed-off-by: Stefan Weil <address@hidden>
>>> ---
>>>  ui/gtk.c |   18 +++++++++++++++---
>>>  1 file changed, 15 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/ui/gtk.c b/ui/gtk.c
>>> index 6316f5b..a633d89 100644
>>> --- a/ui/gtk.c
>>> +++ b/ui/gtk.c
>>> @@ -34,6 +34,10 @@
>>>  #define GETTEXT_PACKAGE "qemu"
>>>  #define LOCALEDIR "po"
>>>  
>>> +#ifdef _WIN32
>>> +# define _WIN32_WINNT 0x0601 /* needed to get definition of 
>>> MAPVK_VK_TO_VSC */
>>> +#endif
>>> +
>>>  #include "qemu-common.h"
>>>  
>>>  #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
>>> @@ -704,11 +708,18 @@ static gboolean gd_button_event(GtkWidget *widget, 
>>> GdkEventButton *button,
>>>  static gboolean gd_key_event(GtkWidget *widget, GdkEventKey *key, void 
>>> *opaque)
>>>  {
>>>      GtkDisplayState *s = opaque;
>>> -    int gdk_keycode;
>>> -    int qemu_keycode;
>>> +    int gdk_keycode = key->hardware_keycode;
>>>      int i;
>>>  
>>> -    gdk_keycode = key->hardware_keycode;
>>> +#ifdef _WIN32
>>> +    UINT qemu_keycode = MapVirtualKey(gdk_keycode, MAPVK_VK_TO_VSC);
>>> +    switch (qemu_keycode) {
>>> +    case 103:   /* alt gr */
>>> +        qemu_keycode = 56 | SCANCODE_GREY;
>>> +        break;
>>> +    }
>>> +#else
>>> +    int qemu_keycode;
>>>  
>>>      if (gdk_keycode < 9) {
>>>          qemu_keycode = 0;
>>> @@ -723,6 +734,7 @@ static gboolean gd_key_event(GtkWidget *widget, 
>>> GdkEventKey *key, void *opaque)
>>>      } else {
>>>          qemu_keycode = 0;
>>>      }
>>> +#endif
>>>  
>>>      trace_gd_key_event(gdk_keycode, qemu_keycode,
>>>                         (key->type == GDK_KEY_PRESS) ? "down" : "up");
>>
>> Ping? Should I send a MinGW pull request for this patch?
>>
> 
> 
> Ping^2? I tried to answer Andreas' questions. Are there any more?
> 
> Stefan
> 


Ping^3. What is missing to get this patch applied? It was sent more than
a month ago (2012-12-07).

Stefan




reply via email to

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