summaryrefslogtreecommitdiff
path: root/ext/js/language/text-scanner.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/js/language/text-scanner.js')
-rw-r--r--ext/js/language/text-scanner.js13
1 files changed, 10 insertions, 3 deletions
diff --git a/ext/js/language/text-scanner.js b/ext/js/language/text-scanner.js
index ad5ba12b..bdbc117e 100644
--- a/ext/js/language/text-scanner.js
+++ b/ext/js/language/text-scanner.js
@@ -137,6 +137,8 @@ export class TextScanner extends EventDispatcher {
/** @type {() => void} */
this._preventNextClickScanTimerCallback = this._onPreventNextClickScanTimeout.bind(this);
+ /** @type {boolean} */
+ this._touchTapValid = false;
/** @type {?number} */
this._primaryTouchIdentifier = null;
/** @type {boolean} */
@@ -662,6 +664,7 @@ export class TextScanner extends EventDispatcher {
this._preventNextContextMenu = false;
this._preventNextMouseDown = false;
this._preventNextClick = false;
+ this._touchTapValid = true;
const selection = window.getSelection();
if (selection !== null && isPointInSelection(x, y, selection)) {
@@ -707,9 +710,10 @@ export class TextScanner extends EventDispatcher {
if (!allowSearch) { return; }
const inputInfo = this._getMatchingInputGroupFromEvent('touch', 'touchEnd', e);
- if (inputInfo === null || !(inputInfo.input !== null && inputInfo.input.scanOnTouchRelease)) { return; }
-
- void this._searchAtFromTouchEnd(x, y, inputInfo);
+ if (inputInfo === null || inputInfo.input === null) { return; }
+ if (inputInfo.input.scanOnTouchRelease || (inputInfo.input.scanOnTouchTap && this._touchTapValid)) {
+ void this._searchAtFromTouchEnd(x, y, inputInfo);
+ }
}
/**
@@ -728,6 +732,8 @@ export class TextScanner extends EventDispatcher {
* @param {TouchEvent} e
*/
_onTouchMove(e) {
+ this._touchTapValid = false;
+
if (this._primaryTouchIdentifier === null) { return; }
if (!e.cancelable) {
@@ -1477,6 +1483,7 @@ export class TextScanner extends EventDispatcher {
scanOnTouchMove: this._getInputBoolean(options.scanOnTouchMove),
scanOnTouchPress: this._getInputBoolean(options.scanOnTouchPress),
scanOnTouchRelease: this._getInputBoolean(options.scanOnTouchRelease),
+ scanOnTouchTap: this._getInputBoolean(options.scanOnTouchTap),
scanOnPenMove: this._getInputBoolean(options.scanOnPenMove),
scanOnPenHover: this._getInputBoolean(options.scanOnPenHover),
scanOnPenReleaseHover: this._getInputBoolean(options.scanOnPenReleaseHover),