Commit 4c7825f6bd81f2d245cbd086544bc1da8f3e7e84

Ryan C. Gordon 2021-07-31T18:27:14

x11: XSync while trying to catch XRRSetScreenSize error. Reference issue #4561

1
2
3
4
5
6
7
8
9
10
11
12
diff --git a/src/video/x11/SDL_x11modes.c b/src/video/x11/SDL_x11modes.c
index 7dab9ff..0ac47b3 100644
--- a/src/video/x11/SDL_x11modes.c
+++ b/src/video/x11/SDL_x11modes.c
@@ -1059,6 +1059,7 @@ X11_SetDisplayMode(_THIS, SDL_VideoDisplay * sdl_display, SDL_DisplayMode * mode
            crashing */
         PreXRRSetScreenSizeErrorHandler = X11_XSetErrorHandler(SDL_XRRSetScreenSizeErrHandler);
         X11_XRRSetScreenSize(display, RootWindow(display, data->screen), mode->w, mode->h, mm_width, mm_height);
+        X11_XSync(display, False);  /* hopefully force any protocol errors to process with this handler. */
         X11_XSetErrorHandler(PreXRRSetScreenSizeErrorHandler);
 
         status = X11_XRRSetCrtcConfig (display, res, output_info->crtc, CurrentTime,