From d004cc705093d3abdbfb3f9af6cef190f4cbb01a Mon Sep 17 00:00:00 2001 From: Sylvain Becker Date: Sat, 21 Dec 2019 22:40:33 +0100 Subject: [PATCH] Android: same way as in nativePause(), resume events are sent from SDL thread --- src/core/android/SDL_android.c | 10 ---------- src/video/android/SDL_androidevents.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/core/android/SDL_android.c b/src/core/android/SDL_android.c index 1081b5897..6560c89f9 100644 --- a/src/core/android/SDL_android.c +++ b/src/core/android/SDL_android.c @@ -1173,23 +1173,13 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativePause)( JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeResume)( JNIEnv *env, jclass cls) { - SDL_LockMutex(Android_ActivityMutex); - __android_log_print(ANDROID_LOG_VERBOSE, "SDL", "nativeResume()"); - if (Android_Window) { - SDL_SendAppEvent(SDL_APP_WILLENTERFOREGROUND); - SDL_SendAppEvent(SDL_APP_DIDENTERFOREGROUND); - SDL_SendWindowEvent(Android_Window, SDL_WINDOWEVENT_RESTORED, 0, 0); - } - /* Signal the resume semaphore so the event loop knows to resume and restore the GL Context * We can't restore the GL Context here because it needs to be done on the SDL main thread * and this function will be called from the Java thread instead. */ SDL_SemPost(Android_ResumeSem); - - SDL_UnlockMutex(Android_ActivityMutex); } JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeFocusChanged)( diff --git a/src/video/android/SDL_androidevents.c b/src/video/android/SDL_androidevents.c index 139eb3827..9c62d1c2b 100644 --- a/src/video/android/SDL_androidevents.c +++ b/src/video/android/SDL_androidevents.c @@ -113,6 +113,11 @@ Android_PumpEvents_Blocking(_THIS) videodata->isPaused = 0; + /* Android_ResumeSem was signaled */ + SDL_SendAppEvent(SDL_APP_WILLENTERFOREGROUND); + SDL_SendAppEvent(SDL_APP_DIDENTERFOREGROUND); + SDL_SendWindowEvent(Android_Window, SDL_WINDOWEVENT_RESTORED, 0, 0); + ANDROIDAUDIO_ResumeDevices(); openslES_ResumeDevices(); @@ -179,6 +184,11 @@ Android_PumpEvents_NonBlocking(_THIS) videodata->isPaused = 0; + /* Android_ResumeSem was signaled */ + SDL_SendAppEvent(SDL_APP_WILLENTERFOREGROUND); + SDL_SendAppEvent(SDL_APP_DIDENTERFOREGROUND); + SDL_SendWindowEvent(Android_Window, SDL_WINDOWEVENT_RESTORED, 0, 0); + ANDROIDAUDIO_ResumeDevices(); openslES_ResumeDevices();