diff options
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(); } |