Bug 4576: remove touch/mouse duplication for Android
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
diff --git a/src/video/android/SDL_androidtouch.c b/src/video/android/SDL_androidtouch.c
index fde3375..5d508aa 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;