Skip to content

Commit

Permalink
fix: pointer events on multi-input devices with Windows 10 and Chrome
Browse files Browse the repository at this point in the history
closes #1579, closes #1593
  • Loading branch information
dimsemenov committed Jan 8, 2019
1 parent fc9ce1a commit 17b35b3
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
2 changes: 1 addition & 1 deletion src/js/framework-bridge.js
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ var framework = {
features.caf = window.cancelAnimationFrame;
}

features.pointerEvent = navigator.pointerEnabled || navigator.msPointerEnabled;
features.pointerEvent = !!(window.PointerEvent) || navigator.msPointerEnabled;

This comment has been minimized.

Copy link
@wrxpowered

wrxpowered Jan 23, 2019

after changing that, I find that window.PointerEvent can be detected in Chrome(v71.0.3578.98) Device Mode, and _likelyTouchDevice then be false, it makes some feature not work correctly like allowPanToNext in option.

This comment has been minimized.

Copy link
@dimsemenov

dimsemenov Jan 23, 2019

Author Owner

@wrxpowered _likelyTouchDevice is affected by navigator.maxTouchPoints being more than one not just by PointerEvent presence:

_likelyTouchDevice = (navigator.maxTouchPoints > 1) || (navigator.msMaxTouchPoints > 1);

Though, I agree that allowPanToNext should be recognized during gesture based on pointer type, not on initialization.


// fix false-positive detection of old Android in new IE
// (IE11 ua string contains "Android 4.0")
Expand Down
12 changes: 6 additions & 6 deletions src/js/gestures.js
Original file line number Diff line number Diff line change
Expand Up @@ -641,9 +641,7 @@ var _gestureStartTime,
if(pointerIndex > -1) {
releasePoint = _currPointers.splice(pointerIndex, 1)[0];

if(navigator.pointerEnabled) {
releasePoint.type = e.pointerType || 'mouse';
} else {
if(navigator.msPointerEnabled) {
var MSPOINTER_TYPES = {
4: 'mouse', // event.MSPOINTER_TYPE_MOUSE
2: 'touch', // event.MSPOINTER_TYPE_TOUCH
Expand All @@ -654,6 +652,8 @@ var _gestureStartTime,
if(!releasePoint.type) {
releasePoint.type = e.pointerType || 'mouse';
}
} else {
releasePoint.type = e.pointerType || 'mouse';
}

}
Expand Down Expand Up @@ -1106,11 +1106,11 @@ _registerModule('Gestures', {
}

if(_pointerEventEnabled) {
if(navigator.pointerEnabled) {
addEventNames('pointer', 'down', 'move', 'up', 'cancel');
} else {
if(navigator.msPointerEnabled) {
// IE10 pointer events are case-sensitive
addEventNames('MSPointer', 'Down', 'Move', 'Up', 'Cancel');
} else {
addEventNames('pointer', 'down', 'move', 'up', 'cancel');
}
} else if(_features.touch) {
addEventNames('touch', 'start', 'move', 'end', 'cancel');
Expand Down

0 comments on commit 17b35b3

Please sign in to comment.