Forráskód Böngészése

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

Dan Ginsburg 1 éve
szülő
commit
2de2e9d031
1 módosított fájl, 8 hozzáadás és 2 törlés
  1. 8 2
      src/video/x11/SDL_x11window.c

+ 8 - 2
src/video/x11/SDL_x11window.c

@@ -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 */