diff --git a/src/video/x11/SDL_x11events.c b/src/video/x11/SDL_x11events.c index 31e739c70..c96b90055 100644 --- a/src/video/x11/SDL_x11events.c +++ b/src/video/x11/SDL_x11events.c @@ -1434,6 +1434,13 @@ X11_DispatchEvent(_THIS, XEvent *xevent) } } + if (changed & SDL_WINDOW_FULLSCREEN_DESKTOP) { + /* FULLSCREEN_DESKTOP encompasses two bits: SDL_WINDOW_FULLSCREEN, plus a bit to note it's FULLSCREEN_DESKTOP */ + const Uint32 fsmasked = flags & SDL_WINDOW_FULLSCREEN_DESKTOP; + data->window->flags &= ~SDL_WINDOW_FULLSCREEN_DESKTOP; + data->window->flags |= fsmasked; + } + if (changed & SDL_WINDOW_MAXIMIZED) { if (flags & SDL_WINDOW_MAXIMIZED) { SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_MAXIMIZED, 0, 0); diff --git a/src/video/x11/SDL_x11window.c b/src/video/x11/SDL_x11window.c index 5574c6eb2..d56d9283e 100644 --- a/src/video/x11/SDL_x11window.c +++ b/src/video/x11/SDL_x11window.c @@ -222,7 +222,7 @@ X11_GetNetWMState(_THIS, Window xwindow) } if (fullscreen == 1) { - flags |= SDL_WINDOW_FULLSCREEN; + flags |= SDL_WINDOW_FULLSCREEN; /* !!! FIXME: arguably this is more like FULLSCREEN_DESKTOP...? */ } /* If the window is unmapped, numItems will be zero and _NET_WM_STATE_HIDDEN