diff options
-rw-r--r-- | ext/fg/js/frontend.js | 40 | ||||
-rw-r--r-- | ext/mixed/js/display.js | 4 |
2 files changed, 28 insertions, 16 deletions
diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index e67008df..7c62b51b 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -80,7 +80,7 @@ class Frontend { onMouseMove(e) { this.popupTimerClear(); - if (this.pendingLookup || Frontend.isMouseButton('primary', e)) { + if (this.pendingLookup || Frontend.isMouseButtonDown('primary', e)) { return; } @@ -88,7 +88,7 @@ class Frontend { const scanningModifier = scanningOptions.modifier; if (!( Frontend.isScanningModifierPressed(scanningModifier, e) || - (scanningOptions.middleMouse && Frontend.isMouseButton('auxiliary', e)) + (scanningOptions.middleMouse && Frontend.isMouseButtonDown('auxiliary', e)) )) { return; } @@ -504,18 +504,30 @@ class Frontend { switch (mouseEvent.type) { case 'mouseup': case 'mousedown': - case 'click': switch (button) { - case 'primary': return mouseEvent.button === 0; - case 'secondary': return mouseEvent.button === 2; - case 'auxiliary': return mouseEvent.button === 1; - default: return false; - } - default: switch (button) { - case 'primary': return (mouseEvent.buttons & 0x1) !== 0x0; - case 'secondary': return (mouseEvent.buttons & 0x2) !== 0x0; - case 'auxiliary': return (mouseEvent.buttons & 0x4) !== 0x0; - default: return false; - } + case 'click': + return Frontend.isMouseButtonPressed(button, mouseEvent); + default: + return Frontend.isMouseButtonDown(button, mouseEvent); + } + } + + static isMouseButtonPressed(button, mouseEvent) { + const mouseEventButton = mouseEvent.button; + switch (button) { + case 'primary': return mouseEventButton === 0; + case 'secondary': return mouseEventButton === 2; + case 'auxiliary': return mouseEventButton === 1; + default: return false; + } + } + + static isMouseButtonDown(button, mouseEvent) { + const mouseEventButtons = mouseEvent.buttons; + switch (button) { + case 'primary': return (mouseEventButtons & 0x1) !== 0x0; + case 'secondary': return (mouseEventButtons & 0x2) !== 0x0; + case 'auxiliary': return (mouseEventButtons & 0x4) !== 0x0; + default: return false; } } } diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index 5a824561..801011df 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -83,7 +83,7 @@ class Display { } onGlossaryMouseDown(e) { - if (Frontend.isMouseButton('primary', e)) { + if (Frontend.isMouseButtonPressed('primary', e)) { this.clickScanPrevent = false; } } @@ -93,7 +93,7 @@ class Display { } onGlossaryMouseUp(e) { - if (!this.clickScanPrevent && Frontend.isMouseButton('primary', e)) { + if (!this.clickScanPrevent && Frontend.isMouseButtonPressed('primary', e)) { this.onTermLookup(e); } } |