Commit 9c063468d6b806de954d867ced857395c6162b82

Ryan C. Gordon 2021-04-24T19:47:10

x11: call XSync before XSetInputFocus during SDL_ShowWindow. This only happens when using a non-NET_WM window manager, as we might try to set the focus before the window is mapped. Fixes #3949.

1
2
3
4
5
6
7
8
9
10
11
12
diff --git a/src/video/x11/SDL_x11window.c b/src/video/x11/SDL_x11window.c
index 41d0de5..94085f4 100644
--- a/src/video/x11/SDL_x11window.c
+++ b/src/video/x11/SDL_x11window.c
@@ -1158,6 +1158,7 @@ X11_ShowWindow(_THIS, SDL_Window * window)
 
     if (!data->videodata->net_wm) {
         /* no WM means no FocusIn event, which confuses us. Force it. */
+        X11_XSync(display, False);
         X11_XSetInputFocus(display, data->xwindow, RevertToNone, CurrentTime);
         X11_XFlush(display);
     }