diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -41,6 +41,9 @@ /** If shared libraries (e.g. SDL or the native application) could not be loaded. */ public static boolean mBrokenLibraries; + /** If we want to separate mouse and touch events. */ + public static boolean mSeparateMouseAndTouch; + // Main components protected static SDLActivity mSingleton; protected static SDLSurface mSurface; @@ -1131,7 +1134,7 @@ float x,y,p; if (event.getSource() == InputDevice.SOURCE_MOUSE && - SDLActivity.nativeGetHint("SDL_ANDROID_SEPARATE_MOUSE_AND_TOUCH").equals("1")) { + SDLActivity.mSeparateMouseAndTouch) { mouseButton = 1; // For Android==12 all mouse buttons are the left button SDLActivity.onNativeMouse(mouseButton, action, event.getX(0), event.getY(0)); diff --git a/src/video/android/SDL_androidtouch.c b/src/video/android/SDL_androidtouch.c --- a/src/video/android/SDL_androidtouch.c +++ b/src/video/android/SDL_androidtouch.c @@ -57,6 +57,9 @@ const char *oldValue, const char *newValue) { separate_mouse_and_touch = (newValue && (SDL_strcmp(newValue, "1") == 0)); + JNIEnv *env = Android_JNI_GetEnv(); + jfieldID fid = (*env)->GetStaticFieldID(env, mActivityClass, "mSeparateMouseAndTouch", "Z"); + (*env)->SetStaticBooleanField(env, mActivityClass, fid, separate_mouse_and_touch ? JNI_TRUE : JNI_FALSE); } void Android_InitTouch(void)