Android: potential ANR during onKeyDown/Up

SDLActivity may call onNativeKeyDown, while application is quitting
This commit is contained in:
Sylvain authored and Sylvain Becker committed 2023-06-16 10:17:01 +02:00
1 parent e72935a445
commit 378e33bb2c
1 file changed
+12
+12
View File
@@ -1157,17 +1157,29 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeKeyDown)(
JNIEnv *env, jclass jcls, JNIEnv *env, jclass jcls,
jint keycode) jint keycode)
{ {
SDL_LockMutex(Android_ActivityMutex);
if (Android_Window) {
Android_OnKeyDown(keycode); Android_OnKeyDown(keycode);
} }
SDL_UnlockMutex(Android_ActivityMutex);
}
/* Keyup */ /* Keyup */
JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeKeyUp)( JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeKeyUp)(
JNIEnv *env, jclass jcls, JNIEnv *env, jclass jcls,
jint keycode) jint keycode)
{ {
SDL_LockMutex(Android_ActivityMutex);
if (Android_Window) {
Android_OnKeyUp(keycode); Android_OnKeyUp(keycode);
} }
SDL_UnlockMutex(Android_ActivityMutex);
}
/* Virtual keyboard return key might stop text input */ /* Virtual keyboard return key might stop text input */
JNIEXPORT jboolean JNICALL SDL_JAVA_INTERFACE(onNativeSoftReturnKey)( JNIEXPORT jboolean JNICALL SDL_JAVA_INTERFACE(onNativeSoftReturnKey)(
JNIEnv *env, jclass jcls) JNIEnv *env, jclass jcls)