diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-09-11 16:57:57 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-11 16:57:57 -0400 |
commit | a5845df123f4024db686d21c4f37f38be79fb8e5 (patch) | |
tree | 564efed3557fb237b595cefb418a65b5930a2538 /ext/bg/js/settings/keyboard-mouse-input-field.js | |
parent | 6afbda8dfe6451420b031fa376798610d48a389b (diff) |
Add support for pointer event input detection (#810)
Diffstat (limited to 'ext/bg/js/settings/keyboard-mouse-input-field.js')
-rw-r--r-- | ext/bg/js/settings/keyboard-mouse-input-field.js | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/ext/bg/js/settings/keyboard-mouse-input-field.js b/ext/bg/js/settings/keyboard-mouse-input-field.js index 4ba0d3ed..2c6a6476 100644 --- a/ext/bg/js/settings/keyboard-mouse-input-field.js +++ b/ext/bg/js/settings/keyboard-mouse-input-field.js @@ -20,10 +20,11 @@ */ class KeyboardMouseInputField extends EventDispatcher { - constructor(inputNode, mouseButton, os) { + constructor(inputNode, mouseButton, os, isPointerTypeSupported=null) { super(); this._inputNode = inputNode; this._mouseButton = mouseButton; + this._isPointerTypeSupported = isPointerTypeSupported; this._keySeparator = ' + '; this._inputNameMap = new Map(DocumentUtil.getModifierKeys(os)); this._keyPriorities = new Map([ @@ -54,6 +55,7 @@ class KeyboardMouseInputField extends EventDispatcher { if (type === 'modifierInputs' && this._mouseButton !== null) { events.push( [this._mouseButton, 'mousedown', this._onMouseButtonMouseDown.bind(this), false], + [this._mouseButton, 'pointerdown', this._onMouseButtonPointerDown.bind(this), false], [this._mouseButton, 'mouseup', this._onMouseButtonMouseUp.bind(this), false], [this._mouseButton, 'contextmenu', this._onMouseButtonContextMenu.bind(this), false] ); @@ -175,6 +177,19 @@ class KeyboardMouseInputField extends EventDispatcher { this._addInputs(DocumentUtil.getActiveButtons(e)); } + _onMouseButtonPointerDown(e) { + const {isPrimary, pointerType} = e; + if ( + !isPrimary || + typeof this._isPointerTypeSupported !== 'function' || + !this._isPointerTypeSupported(pointerType) + ) { + return; + } + e.preventDefault(); + this._addInputs(DocumentUtil.getActiveButtons(e)); + } + _onMouseButtonMouseUp(e) { e.preventDefault(); } |