diff options
author | Volker RĂ¼melin <vr_qemu@t-online.de> | 2020-05-16 09:20:12 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2020-05-19 09:06:44 +0200 |
commit | d3953bf7978521b6373cb8101f594cc44b0efa9e (patch) | |
tree | 066b61f7cd9135eeee3c5bead864215ad11793b3 /ui | |
parent | 20a37f2fa3873ad62c31b40f55f2218ec9ff470b (diff) |
ui/gtk: don't pass on win keys without keyboard grab
Without keyboard grab Windows currently handles the two win keys
and the key events are also sent to the guest. This is undesir-
able. Only one program should handle key events. This patch ap-
plies commit c68f74b02e "win32: do not handle win keys when the
keyboard is not grabbed" from project spice-gtk to ui/gtk.c to
fix this problem.
Signed-off-by: Volker RĂ¼melin <vr_qemu@t-online.de>
Message-id: 20200516072014.7766-9-vr_qemu@t-online.de
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'ui')
-rw-r--r-- | ui/gtk.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -1095,10 +1095,17 @@ static gboolean gd_key_event(GtkWidget *widget, GdkEventKey *key, void *opaque) VirtualConsole *vc = opaque; int qcode; -#ifdef WIN32 +#ifdef G_OS_WIN32 /* on windows, we ought to ignore the reserved key event? */ if (key->hardware_keycode == 0xff) return false; + + if (!vc->s->kbd_owner) { + if (key->hardware_keycode == VK_LWIN || + key->hardware_keycode == VK_RWIN) { + return FALSE; + } + } #endif if (key->keyval == GDK_KEY_Pause |