Explorar o código

x11: Update the display when the WM changes a window's fullscreen state.

Fixes #5390.
Ryan C. Gordon %!s(int64=3) %!d(string=hai) anos
pai
achega
67e0f546c5
Modificáronse 1 ficheiros con 5 adicións e 1 borrados
  1. 5 1
      src/video/x11/SDL_x11events.c

+ 5 - 1
src/video/x11/SDL_x11events.c

@@ -1449,11 +1449,15 @@ X11_DispatchEvent(_THIS, XEvent *xevent)
                     }
                 }
 
+                /* FULLSCREEN_DESKTOP encompasses two bits: SDL_WINDOW_FULLSCREEN, plus a bit to note it's FULLSCREEN_DESKTOP */
                 if (changed & SDL_WINDOW_FULLSCREEN_DESKTOP) {
-                    /* FULLSCREEN_DESKTOP encompasses two bits: SDL_WINDOW_FULLSCREEN, plus a bit to note it's FULLSCREEN_DESKTOP */
+                    SDL_VideoDisplay *viddisplay = SDL_GetDisplayForWindow(data->window);
                     const Uint32 fsmasked = flags & SDL_WINDOW_FULLSCREEN_DESKTOP;
                     data->window->flags &= ~SDL_WINDOW_FULLSCREEN_DESKTOP;
                     data->window->flags |= fsmasked;
+                    if (viddisplay) {
+                        viddisplay->fullscreen_window = fsmasked ? data->window : NULL;
+                    }
                 }
 
                 if (changed & SDL_WINDOW_MAXIMIZED) {