aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker RĂ¼melin <vr_qemu@t-online.de>2020-05-16 09:20:12 +0200
committerGerd Hoffmann <kraxel@redhat.com>2020-05-19 09:06:44 +0200
commitd3953bf7978521b6373cb8101f594cc44b0efa9e (patch)
tree066b61f7cd9135eeee3c5bead864215ad11793b3
parent20a37f2fa3873ad62c31b40f55f2218ec9ff470b (diff)
downloadqemu-d3953bf7978521b6373cb8101f594cc44b0efa9e.zip
qemu-d3953bf7978521b6373cb8101f594cc44b0efa9e.tar.gz
qemu-d3953bf7978521b6373cb8101f594cc44b0efa9e.tar.bz2
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>
-rw-r--r--ui/gtk.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/ui/gtk.c b/ui/gtk.c
index 354dd90..1d51e14 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -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