diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index b9656882..517a9de0 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -129,7 +129,7 @@ class Frontend { } async setTextSource(textSource) { - await this._textScanner.search(textSource, 'script'); + await this._textScanner.search(textSource); } async getOptionsContext() { @@ -299,11 +299,7 @@ class Frontend { this._updateContentScale(); - const textSourceCurrent = this._textScanner.getCurrentTextSource(); - const causeCurrent = this._textScanner.causeCurrent; - if (textSourceCurrent !== null && causeCurrent !== null) { - await this._textScanner.search(textSourceCurrent, causeCurrent); - } + await this._textScanner.searchLast(); } async _updatePopup() { diff --git a/ext/mixed/js/text-scanner.js b/ext/mixed/js/text-scanner.js index 0e295585..12e89091 100644 --- a/ext/mixed/js/text-scanner.js +++ b/ext/mixed/js/text-scanner.js @@ -79,10 +79,6 @@ class TextScanner extends EventDispatcher { this._ignoreNodes = value; } - get causeCurrent() { - return this._causeCurrent; - } - prepare() { this._isPrepared = true; this.setEnabled(this._enabled); @@ -174,7 +170,21 @@ class TextScanner extends EventDispatcher { } } - async search(textSource, cause) { + async searchLast() { + if (this._textSourceCurrent !== null && this._causeCurrent !== null) { + await this._search(this._textSourceCurrent, this._causeCurrent); + return true; + } + return false; + } + + async search(textSource) { + return await this._search(textSource, 'script'); + } + + // Private + + async _search(textSource, cause) { let definitions = null; let sentence = null; let type = null; @@ -214,8 +224,6 @@ class TextScanner extends EventDispatcher { }); } - // Private - _onMouseOver(e) { if (this._ignoreElements().includes(e.target)) { this._scanTimerClear(); @@ -472,7 +480,7 @@ class TextScanner extends EventDispatcher { const textSource = this._documentUtil.getRangeFromPoint(x, y, this._deepContentScan); try { - await this.search(textSource, cause); + await this._search(textSource, cause); } finally { if (textSource !== null) { textSource.cleanup();