From 378e33bb2cae7e475f1cda8c75f71f6232455833 Mon Sep 17 00:00:00 2001
From: Sylvain <[EMAIL REDACTED]>
Date: Fri, 16 Jun 2023 10:05:58 +0200
Subject: [PATCH] Android: potential ANR during onKeyDown/Up SDLActivity may
call onNativeKeyDown, while application is quitting
---
src/core/android/SDL_android.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/core/android/SDL_android.c b/src/core/android/SDL_android.c
index 0188257bddda..8238979c3cbd 100644
--- a/src/core/android/SDL_android.c
+++ b/src/core/android/SDL_android.c
@@ -1157,7 +1157,13 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeKeyDown)(
JNIEnv *env, jclass jcls,
jint keycode)
{
- Android_OnKeyDown(keycode);
+ SDL_LockMutex(Android_ActivityMutex);
+
+ if (Android_Window) {
+ Android_OnKeyDown(keycode);
+ }
+
+ SDL_UnlockMutex(Android_ActivityMutex);
}
/* Keyup */
@@ -1165,7 +1171,13 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeKeyUp)(
JNIEnv *env, jclass jcls,
jint keycode)
{
- Android_OnKeyUp(keycode);
+ SDL_LockMutex(Android_ActivityMutex);
+
+ if (Android_Window) {
+ Android_OnKeyUp(keycode);
+ }
+
+ SDL_UnlockMutex(Android_ActivityMutex);
}
/* Virtual keyboard return key might stop text input */