[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 12/19] ui/sdl2: disable SDL_HINT_GRAB_KEYBOARD on Windows
|
From: |
marcandre . lureau |
|
Subject: |
[PULL 12/19] ui/sdl2: disable SDL_HINT_GRAB_KEYBOARD on Windows |
|
Date: |
Sun, 28 May 2023 17:20:09 +0400 |
From: Volker RĂ¼melin <vr_qemu@t-online.de>
Windows sends an extra left control key up/down input event for
every right alt key up/down input event for keyboards with
international layout. Since commit 830473455f ("ui/sdl2: fix
handling of AltGr key on Windows") QEMU uses a Windows low level
keyboard hook procedure to reliably filter out the special left
control key and to grab the keyboard on Windows.
The SDL2 version 2.0.16 introduced its own Windows low level
keyboard hook procedure to grab the keyboard. Windows calls this
callback before the QEMU keyboard hook procedure. This disables
the special left control key filter when the keyboard is grabbed.
To fix the problem, disable the SDL2 Windows low level keyboard
hook procedure.
Reported-by: Bernhard Beschow <shentey@gmail.com>
Signed-off-by: Volker RĂ¼melin <vr_qemu@t-online.de>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Tested-by: Bernhard Beschow <shentey@gmail.com>
Message-Id: <20230418062823.5683-1-vr_qemu@t-online.de>
---
ui/sdl2.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/ui/sdl2.c b/ui/sdl2.c
index 00aadfae37..9d703200bf 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -855,7 +855,10 @@ static void sdl2_display_init(DisplayState *ds,
DisplayOptions *o)
#ifdef SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR /* only available since SDL
2.0.8 */
SDL_SetHint(SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR, "0");
#endif
+#ifndef CONFIG_WIN32
+ /* QEMU uses its own low level keyboard hook procecure on Windows */
SDL_SetHint(SDL_HINT_GRAB_KEYBOARD, "1");
+#endif
#ifdef SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED
SDL_SetHint(SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED, "0");
#endif
--
2.40.1
- [PULL 03/19] ui/gtk-egl: fix scaling for cursor position in scanout mode, (continued)
- [PULL 03/19] ui/gtk-egl: fix scaling for cursor position in scanout mode, marcandre . lureau, 2023/05/28
- [PULL 02/19] ui/gtk: use widget size for cursor motion event, marcandre . lureau, 2023/05/28
- [PULL 04/19] ui/sdl2: fix surface_gl_update_texture: Assertion 'gls' failed, marcandre . lureau, 2023/05/28
- [PULL 05/19] ui/dbus: fix compilation when GBM && !OPENGL, marcandre . lureau, 2023/05/28
- [PULL 06/19] win32: wrap socket close() with an exception handler, marcandre . lureau, 2023/05/28
- [PULL 07/19] virtio-gpu: add a FIXME for virtio_gpu_load(), marcandre . lureau, 2023/05/28
- [PULL 08/19] gtk: add gl-area support on win32, marcandre . lureau, 2023/05/28
- [PULL 09/19] ui/dbus: add a FIXME about texture/dmabuf scanout handling, marcandre . lureau, 2023/05/28
- [PULL 10/19] ui/sdl2: Grab Alt+Tab also in fullscreen mode, marcandre . lureau, 2023/05/28
- [PULL 11/19] ui/sdl2: Grab Alt+F4 also under Windows, marcandre . lureau, 2023/05/28
- [PULL 12/19] ui/sdl2: disable SDL_HINT_GRAB_KEYBOARD on Windows,
marcandre . lureau <=
- [PULL 13/19] ui/cursor: make width/height unsigned 16-bit integer, marcandre . lureau, 2023/05/28
- [PULL 14/19] virtio-input: generalize virtio_input_key_config(), marcandre . lureau, 2023/05/28
- [PULL 15/19] ui: add the infrastructure to support MT events, marcandre . lureau, 2023/05/28
- [PULL 16/19] virtio-input: add a virtio-mulitouch device, marcandre . lureau, 2023/05/28
- [PULL 17/19] virtio-input-pci: add virtio-multitouch-pci, marcandre . lureau, 2023/05/28
- [PULL 18/19] ui: add helpers for virtio-multitouch events, marcandre . lureau, 2023/05/28
- [PULL 19/19] ui/gtk: enable backend to send multi-touch events, marcandre . lureau, 2023/05/28
- Re: [PULL 00/19] Ui patches, Michael Tokarev, 2023/05/28
- Re: [PULL 00/19] Ui patches, Richard Henderson, 2023/05/29