mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-06 03:18:13 +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->w = bounds.w;
|
||||
window->h = bounds.h;
|
||||
window->pending_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");
|
||||
}
|
||||
|
||||
SetWindowBordered(display, screen, w,
|
||||
!(window->flags & SDL_WINDOW_BORDERLESS));
|
||||
/* Don't set the borderless flag if we're about to go fullscreen.
|
||||
* 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();
|
||||
/* 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);
|
||||
}
|
||||
|
||||
if ((window->flags & SDL_WINDOW_BORDERLESS) && !fullscreen) {
|
||||
SetWindowBordered(display, displaydata->screen, data->xwindow, SDL_FALSE);
|
||||
}
|
||||
|
||||
if (data->visual->class == DirectColor) {
|
||||
if (fullscreen) {
|
||||
X11_XInstallColormap(display, data->colormap);
|
||||
|
Reference in New Issue
Block a user