diff --git a/project/jni/application/openarena/engine b/project/jni/application/openarena/engine index 145388d84..6b5ccdb73 160000 --- a/project/jni/application/openarena/engine +++ b/project/jni/application/openarena/engine @@ -1 +1 @@ -Subproject commit 145388d845e9a85e278bed9e16b0d3e19ca05a83 +Subproject commit 6b5ccdb73e544a22e5d9770362685a1b222d8e04 diff --git a/project/jni/application/openarena/vm b/project/jni/application/openarena/vm index 9c194fb52..12d746c17 160000 --- a/project/jni/application/openarena/vm +++ b/project/jni/application/openarena/vm @@ -1 +1 @@ -Subproject commit 9c194fb526ebfb8e7c92de57bffb54c06aab88d4 +Subproject commit 12d746c17e975ca209185755f2192c5c59e13ea5 diff --git a/project/jni/sdl-1.2/src/video/android/SDL_androidinput.c b/project/jni/sdl-1.2/src/video/android/SDL_androidinput.c index cbf481cab..860e31bff 100644 --- a/project/jni/sdl-1.2/src/video/android/SDL_androidinput.c +++ b/project/jni/sdl-1.2/src/video/android/SDL_androidinput.c @@ -464,6 +464,12 @@ static void SendMultitouchEvents( int x, int y, int action, int pointerId, int f SDL_ANDROID_MainThreadPushJoystickBall(JOY_TOUCHSCREEN, pointerId, x, y); if( action == MOUSE_UP ) SDL_ANDROID_MainThreadPushJoystickButton(JOY_TOUCHSCREEN, pointerId, SDL_RELEASED); + if( !SDL_ANDROID_isMouseUsed && pointerId == 0 ) + { + // Set mouse coordinates to track the first touch pointer, they are used elsewhere but not updated when mouse events are disabled + SDL_ANDROID_currentMouseX = x; + SDL_ANDROID_currentMouseY = y; + } } if( !isMultitouchUsed && !SDL_ANDROID_isMouseUsed && !SDL_ANDROID_isTouchscreenKeyboardUsed ) diff --git a/project/jni/sdl-1.2/src/video/android/SDL_androidvideo.c b/project/jni/sdl-1.2/src/video/android/SDL_androidvideo.c index 7ce3e2fc8..38f523b32 100644 --- a/project/jni/sdl-1.2/src/video/android/SDL_androidvideo.c +++ b/project/jni/sdl-1.2/src/video/android/SDL_androidvideo.c @@ -281,7 +281,9 @@ void SDL_ANDROID_CallJavaShowScreenKeyboard(const char * oldText, char * outBuf, SDL_ANDROID_MainThreadPushMouseButton( SDL_RELEASED, SDL_BUTTON_LEFT ); SDL_ANDROID_MainThreadPushMouseButton( SDL_RELEASED, SDL_BUTTON_RIGHT ); SDL_ANDROID_MainThreadPushMouseButton( SDL_RELEASED, SDL_BUTTON_MIDDLE ); - for (i = 0; i < MAX_MULTITOUCH_POINTERS; i++) + //__android_log_print(ANDROID_LOG_INFO, "libSDL", "Releasing all touch pointers: mouse at %4d %4d", SDL_ANDROID_currentMouseX, SDL_ANDROID_currentMouseY); + JAVA_EXPORT_NAME(DemoGLSurfaceView_nativeMotionEvent) ( NULL, NULL, SDL_ANDROID_currentMouseX, SDL_ANDROID_currentMouseY, MOUSE_UP, 0, 0, 0 ); + for (i = 1; i < MAX_MULTITOUCH_POINTERS; i++) { JAVA_EXPORT_NAME(DemoGLSurfaceView_nativeMotionEvent) ( NULL, NULL, 0, 0, MOUSE_UP, i, 0, 0 ); }