mirror of https://github.com/encounter/SDL.git
x11: Try to keep SDL_WINDOW_FULLSCREEN* in sync with window manager.
So if Gnome/KDE/etc have a keyboard shortcut or titlebar decoration to make any window go fullscreen (with the _NET_WM_FULLSCREEN flag on the _NET_WM_STATE property), we update the SDL window flag. Fixes #5390.
This commit is contained in:
parent
eb660e862c
commit
0249df9d96
|
@ -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 (changed & SDL_WINDOW_MAXIMIZED) {
|
||||||
if (flags & SDL_WINDOW_MAXIMIZED) {
|
if (flags & SDL_WINDOW_MAXIMIZED) {
|
||||||
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_MAXIMIZED, 0, 0);
|
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_MAXIMIZED, 0, 0);
|
||||||
|
|
|
@ -222,7 +222,7 @@ X11_GetNetWMState(_THIS, Window xwindow)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fullscreen == 1) {
|
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
|
/* If the window is unmapped, numItems will be zero and _NET_WM_STATE_HIDDEN
|
||||||
|
|
Loading…
Reference in New Issue