Skip to content

Commit 87ea768

Browse files
committed
Do more general ignore for simulated mouse
1 parent 26a1770 commit 87ea768

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

interact.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,8 @@
233233
// Less Precision with touch input
234234
margin = supportsTouch || supportsPointerEvent? 20: 10,
235235

236-
// for ignoring taps from browser's simulated mouse events
237-
prevTouchTapTime = 0,
236+
// for ignoring browser's simulated mouse events
237+
prevTouchTime = 0,
238238

239239
// Allow this many interactions to happen simultaneously
240240
maxInteractions = 1,
@@ -2357,10 +2357,6 @@
23572357

23582358
this.tapTime = tap.timeStamp;
23592359

2360-
if (!this.mouse) {
2361-
prevTouchTapTime = this.tapTime;
2362-
}
2363-
23642360
for (i = 0; i < targets.length; i++) {
23652361
var origin = getOriginXY(targets[i], elements[i]);
23662362

@@ -2405,8 +2401,7 @@
24052401

24062402
collectTaps: function (pointer, event, eventTarget) {
24072403
if(this.pointerWasMoved
2408-
|| !(this.downTarget && this.downTarget === eventTarget)
2409-
|| (this.mouse && (new Date().getTime() - prevTouchTapTime) < 300)) {
2404+
|| !(this.downTarget && this.downTarget === eventTarget)) {
24102405
return;
24112406
}
24122407

@@ -2826,6 +2821,8 @@
28262821
i;
28272822

28282823
if (supportsTouch && /touch/.test(event.type)) {
2824+
prevTouchTime = new Date().getTime();
2825+
28292826
for (i = 0; i < event.changedTouches.length; i++) {
28302827
var pointer = event.changedTouches[i];
28312828

@@ -2837,13 +2834,19 @@
28372834
}
28382835
}
28392836
else {
2840-
// ignore mouse events while touch interactions are active
28412837
if (!supportsPointerEvent && /mouse/.test(event.type)) {
2838+
// ignore mouse events while touch interactions are active
28422839
for (i = 0; i < interactions.length; i++) {
28432840
if (!interactions[i].mouse && interactions[i].pointerIsDown) {
28442841
return;
28452842
}
28462843
}
2844+
2845+
// try to ignore mouse events that are simulated by the browser
2846+
// after a touch event
2847+
if (new Date().getTime() - prevTouchTime < 500) {
2848+
return;
2849+
}
28472850
}
28482851

28492852
interaction = getInteractionFromPointer(event, event.type, eventTarget);

0 commit comments

Comments
 (0)