aboutsummaryrefslogtreecommitdiff
path: root/ext/fg/js/frontend.js
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 /ext/fg/js/frontend.js
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.
Diffstat (limited to 'ext/fg/js/frontend.js')
-rw-r--r--ext/fg/js/frontend.js40
1 files changed, 26 insertions, 14 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;
}
}
}