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);          }      } |