mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-06 11:28:15 +00:00
Don't set the borderless flag if we're about to go fullscreen.
This prevents the GNOME window manager from moving the window to a different display before the window goes fullscreen. Fixes https://github.com/libsdl-org/SDL/issues/9915
This commit is contained in:
@@ -2254,6 +2254,7 @@ SDL_Window *SDL_CreateWindowWithProperties(SDL_PropertiesID props)
|
|||||||
window->y = bounds.y;
|
window->y = bounds.y;
|
||||||
window->w = bounds.w;
|
window->w = bounds.w;
|
||||||
window->h = bounds.h;
|
window->h = bounds.h;
|
||||||
|
window->pending_flags |= SDL_WINDOW_FULLSCREEN;
|
||||||
flags |= SDL_WINDOW_FULLSCREEN;
|
flags |= SDL_WINDOW_FULLSCREEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -655,8 +655,13 @@ int X11_CreateWindow(SDL_VideoDevice *_this, SDL_Window *window, SDL_PropertiesI
|
|||||||
return SDL_SetError("Couldn't create window");
|
return SDL_SetError("Couldn't create window");
|
||||||
}
|
}
|
||||||
|
|
||||||
SetWindowBordered(display, screen, w,
|
/* Don't set the borderless flag if we're about to go fullscreen.
|
||||||
!(window->flags & SDL_WINDOW_BORDERLESS));
|
* This prevents the window manager from moving a full-screen borderless
|
||||||
|
* window to a different display before we actually go fullscreen.
|
||||||
|
*/
|
||||||
|
if (!(window->pending_flags & SDL_WINDOW_FULLSCREEN)) {
|
||||||
|
SetWindowBordered(display, screen, w, !(window->flags & SDL_WINDOW_BORDERLESS));
|
||||||
|
}
|
||||||
|
|
||||||
sizehints = X11_XAllocSizeHints();
|
sizehints = X11_XAllocSizeHints();
|
||||||
/* Setup the normal size hints */
|
/* Setup the normal size hints */
|
||||||
@@ -1729,6 +1734,10 @@ static int X11_SetWindowFullscreenViaWM(SDL_VideoDevice *_this, SDL_Window *wind
|
|||||||
X11_SetNetWMState(_this, data->xwindow, flags);
|
X11_SetNetWMState(_this, data->xwindow, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((window->flags & SDL_WINDOW_BORDERLESS) && !fullscreen) {
|
||||||
|
SetWindowBordered(display, displaydata->screen, data->xwindow, SDL_FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
if (data->visual->class == DirectColor) {
|
if (data->visual->class == DirectColor) {
|
||||||
if (fullscreen) {
|
if (fullscreen) {
|
||||||
X11_XInstallColormap(display, data->colormap);
|
X11_XInstallColormap(display, data->colormap);
|
||||||
|
Reference in New Issue
Block a user