Skip to content
Permalink
Browse files

Bug 4576: remove touch/mouse duplication for Emscripten

  • Loading branch information
1bsyl committed Apr 2, 2019
1 parent b8e5c56 commit b086edc9158f8c3bbdce5dcdf72ee918569768f2
Showing with 0 additions and 20 deletions.
  1. +0 −17 src/video/emscripten/SDL_emscriptenevents.c
  2. +0 −3 src/video/emscripten/SDL_emscriptenvideo.h
@@ -446,7 +446,6 @@ Emscripten_HandleTouch(int eventType, const EmscriptenTouchEvent *touchEvent, vo
for (i = 0; i < touchEvent->numTouches; i++) {
SDL_FingerID id;
float x, y;
int mx, my;

if (!touchEvent->touches[i].isChanged)
continue;
@@ -455,32 +454,16 @@ Emscripten_HandleTouch(int eventType, const EmscriptenTouchEvent *touchEvent, vo
x = touchEvent->touches[i].canvasX / client_w;
y = touchEvent->touches[i].canvasY / client_h;

mx = x * window_data->window->w;
my = y * window_data->window->h;

if (eventType == EMSCRIPTEN_EVENT_TOUCHSTART) {
if (!window_data->finger_touching) {
window_data->finger_touching = SDL_TRUE;
window_data->first_finger = id;
SDL_SendMouseMotion(window_data->window, SDL_TOUCH_MOUSEID, 0, mx, my);
SDL_SendMouseButton(window_data->window, SDL_TOUCH_MOUSEID, SDL_PRESSED, SDL_BUTTON_LEFT);
}
SDL_SendTouch(deviceId, id, SDL_TRUE, x, y, 1.0f);

/* disable browser scrolling/pinch-to-zoom if app handles touch events */
if (!preventDefault && SDL_GetEventState(SDL_FINGERDOWN) == SDL_ENABLE) {
preventDefault = 1;
}
} else if (eventType == EMSCRIPTEN_EVENT_TOUCHMOVE) {
if ((window_data->finger_touching) && (window_data->first_finger == id)) {
SDL_SendMouseMotion(window_data->window, SDL_TOUCH_MOUSEID, 0, mx, my);
}
SDL_SendTouchMotion(deviceId, id, x, y, 1.0f);
} else {
if ((window_data->finger_touching) && (window_data->first_finger == id)) {
SDL_SendMouseButton(window_data->window, SDL_TOUCH_MOUSEID, SDL_RELEASED, SDL_BUTTON_LEFT);
window_data->finger_touching = SDL_FALSE;
}
SDL_SendTouch(deviceId, id, SDL_FALSE, x, y, 1.0f);

/* block browser's simulated mousedown/mouseup on touchscreen devices */
@@ -47,9 +47,6 @@ typedef struct SDL_WindowData
int requested_fullscreen_mode;
SDL_bool fullscreen_resize;

SDL_bool finger_touching; /* for mapping touch events to mice */
SDL_FingerID first_finger;

SDL_bool has_pointer_lock;
} SDL_WindowData;

0 comments on commit b086edc

Please sign in to comment.