[Android] Signal the resume semaphore after pushing the relevant events

Ref: Request in #2242
This commit is contained in:
Gabriel Jacobo 2013-12-03 12:09:58 -03:00
parent 5ac1813451
commit 6c495a806a
1 changed files with 4 additions and 5 deletions

View File

@ -320,16 +320,15 @@ void Java_org_libsdl_app_SDLActivity_nativeResume(
__android_log_print(ANDROID_LOG_VERBOSE, "SDL", "nativeResume()"); __android_log_print(ANDROID_LOG_VERBOSE, "SDL", "nativeResume()");
if (Android_Window) { if (Android_Window) {
SDL_SendAppEvent(SDL_APP_WILLENTERFOREGROUND);
SDL_SendAppEvent(SDL_APP_DIDENTERFOREGROUND);
SDL_SendWindowEvent(Android_Window, SDL_WINDOWEVENT_FOCUS_GAINED, 0, 0);
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 /* 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 * 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. * and this function will be called from the Java thread instead.
*/ */
if (!SDL_SemValue(Android_ResumeSem)) SDL_SemPost(Android_ResumeSem); if (!SDL_SemValue(Android_ResumeSem)) SDL_SemPost(Android_ResumeSem);
SDL_SendAppEvent(SDL_APP_WILLENTERFOREGROUND);
SDL_SendAppEvent(SDL_APP_DIDENTERFOREGROUND);
SDL_SendWindowEvent(Android_Window, SDL_WINDOWEVENT_FOCUS_GAINED, 0, 0);
SDL_SendWindowEvent(Android_Window, SDL_WINDOWEVENT_RESTORED, 0, 0);
} }
} }