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();