diff mbox series

[v2,1/2] ui/sdl2: Grab Alt+Tab also in fullscreen mode

Message ID 20230417192139.43263-2-shentey@gmail.com (mailing list archive)
State New, archived
Headers show
Series SDL2 usability fixes | expand

Commit Message

Bernhard Beschow April 17, 2023, 7:21 p.m. UTC
By default, SDL grabs Alt+Tab only in non-fullscreen mode. This causes Alt+Tab
to switch tasks on the host rather than in the VM in fullscreen mode while it
switches tasks in non-fullscreen mode in the VM. Fix this confusing behavior
by grabbing Alt+Tab in fullscreen mode, always causing tasks to be switched in
the VM.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 ui/sdl2.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Volker RĂ¼melin April 18, 2023, 6:15 a.m. UTC | #1
> By default, SDL grabs Alt+Tab only in non-fullscreen mode. This causes Alt+Tab
> to switch tasks on the host rather than in the VM in fullscreen mode while it
> switches tasks in non-fullscreen mode in the VM. Fix this confusing behavior
> by grabbing Alt+Tab in fullscreen mode, always causing tasks to be switched in
> the VM.
>
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
>   ui/sdl2.c | 3 +++
>   1 file changed, 3 insertions(+)

Reviewed-by: Volker RĂ¼melin <vr_qemu@t-online.de>

> diff --git a/ui/sdl2.c b/ui/sdl2.c
> index b12dec4caf..8af8b89f1d 100644
> --- a/ui/sdl2.c
> +++ b/ui/sdl2.c
> @@ -856,6 +856,9 @@ static void sdl2_display_init(DisplayState *ds, DisplayOptions *o)
>       SDL_SetHint(SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR, "0");
>   #endif
>       SDL_SetHint(SDL_HINT_GRAB_KEYBOARD, "1");
> +#ifdef SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED
> +    SDL_SetHint(SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED, "0");
> +#endif
>       memset(&info, 0, sizeof(info));
>       SDL_VERSION(&info.version);
>
diff mbox series

Patch

diff --git a/ui/sdl2.c b/ui/sdl2.c
index b12dec4caf..8af8b89f1d 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -856,6 +856,9 @@  static void sdl2_display_init(DisplayState *ds, DisplayOptions *o)
     SDL_SetHint(SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR, "0");
 #endif
     SDL_SetHint(SDL_HINT_GRAB_KEYBOARD, "1");
+#ifdef SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED
+    SDL_SetHint(SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED, "0");
+#endif
     memset(&info, 0, sizeof(info));
     SDL_VERSION(&info.version);