Android: better fix for bug 3186. Run those commands from SDL thread.

Sylvain Becker 2019-01-06 20:25:54 +01:00
parent 9f23d1815f
commit 462e62e154
2 changed files with 12 additions and 7 deletions

View File

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

View File

@ -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) {