From 1c7bf478ae9c7904c70509277b9a3ce4a2ca7ab2 Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Thu, 31 Mar 2022 10:09:02 -0400
Subject: [PATCH] x11: Ignore BadValue for extremely small XRRSetScreenSize
resolutions.
Reference Issue #4840.
---
src/video/x11/SDL_x11modes.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/video/x11/SDL_x11modes.c b/src/video/x11/SDL_x11modes.c
index c1efe243c15..f2cbdb45fb8 100644
--- a/src/video/x11/SDL_x11modes.c
+++ b/src/video/x11/SDL_x11modes.c
@@ -1011,7 +1011,13 @@ static int (*PreXRRSetScreenSizeErrorHandler)(Display *, XErrorEvent *) = NULL;
static int
SDL_XRRSetScreenSizeErrHandler(Display *d, XErrorEvent *e)
{
- return (e->error_code == BadMatch) ? 0 : PreXRRSetScreenSizeErrorHandler(d, e);
+ /* BadMatch: https://github.com/libsdl-org/SDL/issues/4561 */
+ /* BadValue: https://github.com/libsdl-org/SDL/issues/4840 */
+ if ((e->error_code == BadMatch) || (e->error_code == BadValue)) {
+ return 0;
+ }
+
+ return PreXRRSetScreenSizeErrorHandler(d, e);
}
int