Commit b75cd2b36dd742b956a225087dad39d14884f581

Ryan C. Gordon 2022-06-10T14:12:03

x11: Force window back to expected size after SDL_SetWindowBordered. This helps if the window manager decided to let it fill the space that an existing border was using before its removal. Fixes #5718.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
diff --git a/src/video/x11/SDL_x11window.c b/src/video/x11/SDL_x11window.c
index 8fb5ae9..6a1e299 100644
--- a/src/video/x11/SDL_x11window.c
+++ b/src/video/x11/SDL_x11window.c
@@ -1074,6 +1074,10 @@ X11_SetWindowBordered(_THIS, SDL_Window * window, SDL_bool bordered)
     X11_XSync(display, False);
     X11_XCheckIfEvent(display, &event, &isUnmapNotify, (XPointer)&data->xwindow);
     X11_XCheckIfEvent(display, &event, &isMapNotify, (XPointer)&data->xwindow);
+
+    /* Make sure the window manager didn't resize our window for the difference. */
+    X11_XResizeWindow(display, data->xwindow, window->w, window->h);
+    X11_XSync(display, False);
 }
 
 void