Message ID | 20230417192139.43263-2-shentey@gmail.com |
---|---|
State | New |
Headers | show |
Series | SDL2 usability fixes | expand |
> 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 --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);
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(+)