aboutsummaryrefslogtreecommitdiff
path: root/ext/fg/js/driver.js
diff options
context:
space:
mode:
authorAlex Yatskov <alex@foosoft.net>2017-02-26 12:06:37 -0800
committerAlex Yatskov <alex@foosoft.net>2017-02-26 12:06:37 -0800
commitda124f6c2789ec0aa4f8a0ae917af30de9bd3653 (patch)
tree80ba315d7574d6f39ae953d0f2929e8a6309303c /ext/fg/js/driver.js
parentec0aded9bb39c6ff148d842d1a72b3b4ff4d904c (diff)
fix wonky scanning logic
Diffstat (limited to 'ext/fg/js/driver.js')
-rw-r--r--ext/fg/js/driver.js17
1 files changed, 11 insertions, 6 deletions
diff --git a/ext/fg/js/driver.js b/ext/fg/js/driver.js
index 515bb463..6ea7fbaf 100644
--- a/ext/fg/js/driver.js
+++ b/ext/fg/js/driver.js
@@ -22,7 +22,8 @@ class Driver {
this.popup = new Popup();
this.popupTimer = null;
this.lastMousePos = null;
- this.leftMouseDown = false;
+ this.mouseDownLeft = false;
+ this.mouseDownMiddle = false;
this.lastTextSource = null;
this.pendingLookup = false;
this.options = null;
@@ -64,16 +65,16 @@ class Driver {
return;
}
- if (this.leftMouseDown) {
+ if (this.mouseDownLeft) {
return;
}
- if (this.options.scanning.requireShift && !e.shiftKey) {
+ if (this.options.scanning.requireShift && !e.shiftKey && !this.mouseDownMiddle) {
return;
}
const searcher = () => this.searchAt(this.lastMousePos);
- if (!this.popup.isVisible() || e.shiftKey || e.which === 2 /* mmb */) {
+ if (this.popup.isVisible()) {
searcher();
} else {
this.popupTimerSet(searcher);
@@ -86,13 +87,17 @@ class Driver {
this.searchClear();
if (e.which === 1) {
- this.leftMouseDown = true;
+ this.mouseDownLeft = true;
+ } else if (e.which === 2) {
+ this.mouseDownMiddle = true;
}
}
onMouseUp(e) {
if (e.which === 1) {
- this.leftMouseDown = false;
+ this.mouseDownLeft = false;
+ } else if (e.which === 2) {
+ this.mouseDownMiddle = false;
}
}