From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57481) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W4zlh-0007k7-Hh for qemu-devel@nongnu.org; Sun, 19 Jan 2014 16:19:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W4zlb-0005d5-IF for qemu-devel@nongnu.org; Sun, 19 Jan 2014 16:18:57 -0500 Received: from smtp.mail.uni-mannheim.de ([134.155.96.80]:55669) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W4zlb-0005cw-CC for qemu-devel@nongnu.org; Sun, 19 Jan 2014 16:18:51 -0500 Message-ID: <52DC4137.9030105@weilnetz.de> Date: Sun, 19 Jan 2014 22:18:47 +0100 From: Stefan Weil MIME-Version: 1.0 References: <1386429917-7629-1-git-send-email-sw@weilnetz.de> <52B1E618.4000305@weilnetz.de> <52D043C0.2010204@weilnetz.de> In-Reply-To: <52D043C0.2010204@weilnetz.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] gtk: Support keyboard translation for hosts running Windows List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel , =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= 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 >>> --- >>> 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