emscripten: send fake mouse events for touches, like other targets do.

(This really should be handled at the higher level and not in the individual
targets, but this fixes the immediate bug.)
diff --git a/src/video/emscripten/SDL_emscriptenevents.c b/src/video/emscripten/SDL_emscriptenevents.c
index 0f915c6..306ec55 100644
--- a/src/video/emscripten/SDL_emscriptenevents.c
+++ b/src/video/emscripten/SDL_emscriptenevents.c
@@ -391,11 +391,24 @@
         x = touchEvent->touches[i].canvasX / (float)window_data->windowed_width;
         y = touchEvent->touches[i].canvasY / (float)window_data->windowed_height;
 
-        if (eventType == EMSCRIPTEN_EVENT_TOUCHMOVE) {
-            SDL_SendTouchMotion(deviceId, id, x, y, 1.0f);
-        } else if (eventType == EMSCRIPTEN_EVENT_TOUCHSTART) {
+        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, x, y);
+                SDL_SendMouseButton(window_data->window, SDL_TOUCH_MOUSEID, SDL_PRESSED, SDL_BUTTON_LEFT);
+            }
             SDL_SendTouch(deviceId, id, SDL_TRUE, x, y, 1.0f);
+        } 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, x, y);
+            }
+            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);
         }
     }
diff --git a/src/video/emscripten/SDL_emscriptenvideo.h b/src/video/emscripten/SDL_emscriptenvideo.h
index e824de3..49b0b35 100644
--- a/src/video/emscripten/SDL_emscriptenvideo.h
+++ b/src/video/emscripten/SDL_emscriptenvideo.h
@@ -24,6 +24,7 @@
 #define _SDL_emscriptenvideo_h
 
 #include "../SDL_sysvideo.h"
+#include "../../events/SDL_touch_c.h"
 #include <emscripten/emscripten.h>
 #include <emscripten/html5.h>
 
@@ -45,6 +46,9 @@
     SDL_bool external_size;
 
     int requested_fullscreen_mode;
+
+    SDL_bool finger_touching;  /* for mapping touch events to mice */
+    SDL_FingerID first_finger;
 } SDL_WindowData;
 
 #endif /* _SDL_emscriptenvideo_h */