aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2019-11-10 14:00:44 -0500
committertoasted-nutbread <toasted-nutbread@users.noreply.github.com>2019-11-10 14:00:44 -0500
commitd9b44040751846d6b0bbf5fcf6ea4152f6ce9bcc (patch)
treeb1dabd9ff08a29dac69e0b15d63421d977fda28e
parentdad685dba42961697c78a26078c0d5a2e0750e8c (diff)
Create functions for the cases of isMouseButton
jshint was showing a warning that there was no break statement after the first case, which there doesn't need to be. The most straightforward way to fix this without using the unclear // jshint ignore:line is to just have two functions. This change also updates invocations of isMouseButton to use the exact case function, as this will remove the need to check the case of mosueEvent.type. This was done because onMouseMove is invoked at a high frequency.
-rw-r--r--ext/fg/js/frontend.js40
-rw-r--r--ext/mixed/js/display.js4
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);
}
}