diff --git a/lime/_backend/html5/HTML5Window.hx b/lime/_backend/html5/HTML5Window.hx
index 9c751998a..4da179f18 100644
--- a/lime/_backend/html5/HTML5Window.hx
+++ b/lime/_backend/html5/HTML5Window.hx
@@ -48,6 +48,7 @@ class HTML5Window {
private var currentTouches = new Map ();
private var enableTextEvents:Bool;
private var parent:Window;
+ private var primaryTouch:Touch;
private var setHeight:Int;
private var setWidth:Int;
private var unusedTouchesPool = new List ();
@@ -440,7 +441,13 @@ class HTML5Window {
Touch.onStart.dispatch (touch);
- if (data == event.touches[0]) {
+ if (primaryTouch == null) {
+
+ primaryTouch = touch;
+
+ }
+
+ if (touch == primaryTouch) {
parent.onMouseDown.dispatch (x, y, 0);
@@ -466,9 +473,10 @@ class HTML5Window {
currentTouches.remove (data.identifier);
unusedTouchesPool.add (touch);
- if (data == event.touches[0]) {
+ if (touch == primaryTouch) {
parent.onMouseUp.dispatch (x, y, 0);
+ primaryTouch = null;
}
@@ -491,7 +499,7 @@ class HTML5Window {
Touch.onMove.dispatch (touch);
- if (data == event.touches[0]) {
+ if (touch == primaryTouch) {
parent.onMouseMove.dispatch (x, y);