SDL: Main callbacks should be processed even if events are already pending in SDL_WaitEvent()

From f26af133813e3aea84e8608ad59f07c8c6a34e8e Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Tue, 1 Sep 2026 15:36:38 -0700
Subject: [PATCH] Main callbacks should be processed even if events are already
 pending in SDL_WaitEvent()

Fixes https://github.com/libsdl-org/SDL/issues/15485

(cherry picked from commit 757400e0446d554113c9a1335ee29051f8970cef)
---
 src/events/SDL_events.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/events/SDL_events.c b/src/events/SDL_events.c
index a8ac576bc449d..06f1053cf6eb9 100644
--- a/src/events/SDL_events.c
+++ b/src/events/SDL_events.c
@@ -1726,6 +1726,10 @@ bool SDL_WaitEventTimeoutNS(SDL_Event *event, Sint64 timeoutNS)
         }
     } else {
         // Has existing events
+        if (!event) {
+            // The application expects callbacks to run even if events are pending
+            SDL_RunMainThreadCallbacks();
+        }
         return true;
     }
     // We should have completely handled timeoutNS == 0 above