Fix flickering of window when using desktop-fullscreen and borderless window on multiple monitors on Linux. Closes #8186.

This commit is contained in:
Dan Ginsburg 2023-09-01 16:21:44 -04:00 committed by Sam Lantinga
parent 723835d16a
commit 2de2e9d031
1 changed files with 8 additions and 2 deletions

View File

@ -604,8 +604,14 @@ int X11_CreateWindow(SDL_VideoDevice *_this, SDL_Window *window)
return SDL_SetError("Couldn't create window");
}
SetWindowBordered(display, screen, w,
!(window->flags & SDL_WINDOW_BORDERLESS));
/* Do not set borderless window if in desktop fullscreen, this causes
flickering in multi-monitor setups */
if (!((window->pending_flags & SDL_WINDOW_FULLSCREEN) &&
(window->flags & SDL_WINDOW_BORDERLESS) &&
!window->fullscreen_exclusive)) {
SetWindowBordered(display, screen, w,
!(window->flags & SDL_WINDOW_BORDERLESS));
}
sizehints = X11_XAllocSizeHints();
/* Setup the normal size hints */