SDL: Fixed bug #14233 - Android fix Android_WaitActiveAndLockActivity() to make sure Android_Paused state is refreshed

From e4c60c05bf9bc6a828bccdf575d0777ada5b80ab Mon Sep 17 00:00:00 2001
From: Sylvain <[EMAIL REDACTED]>
Date: Tue, 14 Oct 2025 11:40:52 +0200
Subject: [PATCH] Fixed bug #14233 - Android fix
 Android_WaitActiveAndLockActivity() to make sure Android_Paused state is
 refreshed

---
 src/video/android/SDL_androidevents.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/video/android/SDL_androidevents.c b/src/video/android/SDL_androidevents.c
index a83643faf5c52..d82ea18424866 100644
--- a/src/video/android/SDL_androidevents.c
+++ b/src/video/android/SDL_androidevents.c
@@ -243,6 +243,12 @@ void Android_PumpEvents(Sint64 timeoutNS)
 
 bool Android_WaitActiveAndLockActivity(void)
 {
+    /* Make sure we have pumped all events so that Android_Paused state is correct */
+    SDL_AndroidLifecycleEvent event;
+    while (!Android_Destroyed && Android_WaitLifecycleEvent(&event, 0)) {
+        Android_HandleLifecycleEvent(event);
+    }
+
     while (Android_Paused && !Android_Destroyed) {
         Android_PumpEvents(-1);
     }