From fdf22878e423e4dd9c78f6addf9daf2e0546d230 Mon Sep 17 00:00:00 2001 From: Frank Praznik Date: Wed, 27 May 2026 12:01:03 -0400 Subject: [PATCH] x11: Fix boolean/enum comparison This could set the pending flag even if there was no state change requested, which would cause errant sync timeouts in certain situations. --- src/video/x11/SDL_x11window.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/video/x11/SDL_x11window.c b/src/video/x11/SDL_x11window.c index a0864d71b4..352bbe7c9c 100644 --- a/src/video/x11/SDL_x11window.c +++ b/src/video/x11/SDL_x11window.c @@ -1899,7 +1899,8 @@ static SDL_FullscreenResult X11_SetWindowFullscreenViaWM(SDL_VideoDevice *_this, X11_XSendEvent(display, RootWindow(display, displaydata->screen), 0, SubstructureNotifyMask | SubstructureRedirectMask, &e); - if (!!(window->flags & SDL_WINDOW_FULLSCREEN) != fullscreen) { + // Only set the pending flag if the fullscreen state actually changed. + if (((window->flags & SDL_WINDOW_FULLSCREEN) != 0) != (fullscreen != 0)) { data->pending_operation |= X11_PENDING_OP_FULLSCREEN; }