summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain Becker <sylvain.becker@gmail.com>2019-04-02 17:23:55 +0200
committerSylvain Becker <sylvain.becker@gmail.com>2019-04-02 17:23:55 +0200
commit3dd804777381e91c600dcb1df9fc6e2aae45b8ae (patch)
treef8ce6692862fcce4b52ee006e08ec1b25bdd9a78
parent2c2e438e6c9864ef33faa48ab3416f274ce16a69 (diff)
Bug 4576: remove touch/mouse duplication for Android
-rw-r--r--src/video/android/SDL_androidtouch.c40
1 files changed, 1 insertions, 39 deletions
diff --git a/src/video/android/SDL_androidtouch.c b/src/video/android/SDL_androidtouch.c
index fde33757bc..5d508aa198 100644
--- a/src/video/android/SDL_androidtouch.c
+++ b/src/video/android/SDL_androidtouch.c
@@ -40,23 +40,11 @@
#define ACTION_POINTER_DOWN 5
#define ACTION_POINTER_UP 6
-static void Android_GetWindowCoordinates(SDL_Window *window, float x, float y,
- int *window_x, int *window_y)
-{
- int window_w, window_h;
-
- SDL_GetWindowSize(window, &window_w, &window_h);
- *window_x = (int)(x * window_w);
- *window_y = (int)(y * window_h);
-}
-
-static SDL_bool separate_mouse_and_touch = SDL_FALSE;
-
static void SDLCALL
SeparateEventsHintWatcher(void *userdata, const char *name,
const char *oldValue, const char *newValue)
{
- separate_mouse_and_touch = (newValue && (SDL_strcmp(newValue, "1") == 0));
+ SDL_bool separate_mouse_and_touch = (newValue && (SDL_strcmp(newValue, "1") == 0));
Android_JNI_SetSeparateMouseAndTouch(separate_mouse_and_touch);
}
@@ -74,7 +62,6 @@ void Android_QuitTouch(void)
{
SDL_DelHintCallback(SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH,
SeparateEventsHintWatcher, NULL);
- separate_mouse_and_touch = SDL_FALSE;
}
void Android_OnTouch(SDL_Window *window, int touch_device_id_in, int pointer_finger_id_in, int action, float x, float y, float p)
@@ -82,7 +69,6 @@ void Android_OnTouch(SDL_Window *window, int touch_device_id_in, int pointer_fin
SDL_TouchID touchDeviceId = 0;
SDL_FingerID fingerId = 0;
int window_x, window_y;
- static SDL_FingerID pointerFingerID = 0;
if (!window) {
return;
@@ -96,40 +82,16 @@ void Android_OnTouch(SDL_Window *window, int touch_device_id_in, int pointer_fin
fingerId = (SDL_FingerID)pointer_finger_id_in;
switch (action) {
case ACTION_DOWN:
- /* Primary pointer down */
- if (!separate_mouse_and_touch) {
- Android_GetWindowCoordinates(window, x, y, &window_x, &window_y);
- /* send moved event */
- SDL_SendMouseMotion(window, SDL_TOUCH_MOUSEID, 0, window_x, window_y);
- /* send mouse down event */
- SDL_SendMouseButton(window, SDL_TOUCH_MOUSEID, SDL_PRESSED, SDL_BUTTON_LEFT);
- }
- pointerFingerID = fingerId;
case ACTION_POINTER_DOWN:
- /* Non primary pointer down */
SDL_SendTouch(touchDeviceId, fingerId, SDL_TRUE, x, y, p);
break;
case ACTION_MOVE:
- if (!pointerFingerID) {
- if (!separate_mouse_and_touch) {
- Android_GetWindowCoordinates(window, x, y, &window_x, &window_y);
- /* send moved event */
- SDL_SendMouseMotion(window, SDL_TOUCH_MOUSEID, 0, window_x, window_y);
- }
- }
SDL_SendTouchMotion(touchDeviceId, fingerId, x, y, p);
break;
case ACTION_UP:
- /* Primary pointer up */
- if (!separate_mouse_and_touch) {
- /* send mouse up */
- SDL_SendMouseButton(window, SDL_TOUCH_MOUSEID, SDL_RELEASED, SDL_BUTTON_LEFT);
- }
- pointerFingerID = (SDL_FingerID) 0;
case ACTION_POINTER_UP:
- /* Non primary pointer up */
SDL_SendTouch(touchDeviceId, fingerId, SDL_FALSE, x, y, p);
break;