From 462e62e1549fa3401d6241f3ef1691988619a1fe Mon Sep 17 00:00:00 2001 From: Sylvain Becker Date: Sun, 6 Jan 2019 20:25:54 +0100 Subject: [PATCH] Android: better fix for bug 3186. Run those commands from SDL thread. --- src/core/android/SDL_android.c | 7 ------- src/video/android/SDL_androidevents.c | 12 ++++++++++++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/core/android/SDL_android.c b/src/core/android/SDL_android.c index 1cebed3996701..b9b9b3be92547 100644 --- a/src/core/android/SDL_android.c +++ b/src/core/android/SDL_android.c @@ -838,13 +838,6 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeResume)( __android_log_print(ANDROID_LOG_VERBOSE, "SDL", "nativeResume()"); if (Android_Window) { - - /* Make sure SW Keyboard is restored when an app becomes foreground */ - if (SDL_IsTextInputActive()) { - SDL_VideoDevice *_this = SDL_GetVideoDevice(); - Android_StartTextInput(_this); /* Only showTextInput */ - } - SDL_SendAppEvent(SDL_APP_WILLENTERFOREGROUND); SDL_SendAppEvent(SDL_APP_DIDENTERFOREGROUND); SDL_SendWindowEvent(Android_Window, SDL_WINDOWEVENT_FOCUS_GAINED, 0, 0); diff --git a/src/video/android/SDL_androidevents.c b/src/video/android/SDL_androidevents.c index 0e3bb01bc911b..776d300c0b108 100644 --- a/src/video/android/SDL_androidevents.c +++ b/src/video/android/SDL_androidevents.c @@ -107,6 +107,12 @@ Android_PumpEvents(_THIS) android_egl_context_restore(Android_Window); SDL_UnlockMutex(Android_ActivityMutex); } + + /* Make sure SW Keyboard is restored when an app becomes foreground */ + if (SDL_IsTextInputActive()) { + SDL_VideoDevice *_this = SDL_GetVideoDevice(); + Android_StartTextInput(_this); /* Only showTextInput */ + } } } else { if (isPausing || SDL_SemTryWait(Android_PauseSem) == 0) { @@ -144,6 +150,12 @@ Android_PumpEvents(_THIS) android_egl_context_restore(Android_Window); SDL_UnlockMutex(Android_ActivityMutex); } + + /* Make sure SW Keyboard is restored when an app becomes foreground */ + if (SDL_IsTextInputActive()) { + SDL_VideoDevice *_this = SDL_GetVideoDevice(); + Android_StartTextInput(_this); /* Only showTextInput */ + } } } else { if (SDL_SemTryWait(Android_PauseSem) == 0) {