diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-09-08 19:23:32 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-08 19:23:32 -0400 | 
| commit | 46af4c9da42af5fa3f3e523a56ebf916b593af86 (patch) | |
| tree | af80781a2dec1ddfb3d5db900e0ad0108696ab2a /ext/mixed/js | |
| parent | c1b16cebe7744b5d98b8e109bb3235676a79f474 (diff) | |
Text scanner fixes and refactoring (#788)
* Fix incorrect argument being passed
* Clear causeCurrent
* Change cause string to a more general input object
Diffstat (limited to 'ext/mixed/js')
| -rw-r--r-- | ext/mixed/js/display.js | 2 | ||||
| -rw-r--r-- | ext/mixed/js/text-scanner.js | 29 | 
2 files changed, 16 insertions, 15 deletions
| diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index 4c058948..2bb85f1f 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -501,7 +501,7 @@ class Display extends EventDispatcher {          }      } -    _onQueryParserSearch({type, definitions, sentence, cause, textSource}) { +    _onQueryParserSearch({type, definitions, sentence, input: {cause}, textSource}) {          const query = textSource.text();          const details = {              focus: false, diff --git a/ext/mixed/js/text-scanner.js b/ext/mixed/js/text-scanner.js index 12e89091..2410f2b7 100644 --- a/ext/mixed/js/text-scanner.js +++ b/ext/mixed/js/text-scanner.js @@ -35,7 +35,7 @@ class TextScanner extends EventDispatcher {          this._isPrepared = false;          this._ignoreNodes = null; -        this._causeCurrent = null; +        this._inputCurrent = null;          this._scanTimerPromise = null;          this._textSourceCurrent = null;          this._textSourceCurrentSelected = false; @@ -152,6 +152,7 @@ class TextScanner extends EventDispatcher {              }              this._textSourceCurrent = null;              this._textSourceCurrentSelected = false; +            this._inputCurrent = null;          }          this.trigger('clearSelection', {passive});      } @@ -171,20 +172,20 @@ class TextScanner extends EventDispatcher {      }      async searchLast() { -        if (this._textSourceCurrent !== null && this._causeCurrent !== null) { -            await this._search(this._textSourceCurrent, this._causeCurrent); +        if (this._textSourceCurrent !== null && this._inputCurrent !== null) { +            await this._search(this._textSourceCurrent, this._inputCurrent);              return true;          }          return false;      }      async search(textSource) { -        return await this._search(textSource, 'script'); +        return await this._search(textSource, {cause: 'script'});      }      // Private -    async _search(textSource, cause) { +    async _search(textSource, input) {          let definitions = null;          let sentence = null;          let type = null; @@ -200,10 +201,10 @@ class TextScanner extends EventDispatcher {              optionsContext = await this._getOptionsContext();              searched = true; -            const result = await this._findDefinitions(textSource, cause); +            const result = await this._findDefinitions(textSource, optionsContext);              if (result !== null) {                  ({definitions, sentence, type} = result); -                this._causeCurrent = cause; +                this._inputCurrent = input;                  this.setCurrentTextSource(textSource);              }          } catch (e) { @@ -217,7 +218,7 @@ class TextScanner extends EventDispatcher {              type,              definitions,              sentence, -            cause, +            input,              textSource,              optionsContext,              error @@ -271,7 +272,7 @@ class TextScanner extends EventDispatcher {      _onClick(e) {          if (this._searchOnClick) { -            this._searchAt(e.clientX, e.clientY, 'click'); +            this._searchAt(e.clientX, e.clientY, {cause: 'click'});          }          if (this._preventNextClick) { @@ -344,7 +345,7 @@ class TextScanner extends EventDispatcher {              return;          } -        this._searchAt(primaryTouch.clientX, primaryTouch.clientY, 'touchMove'); +        this._searchAt(primaryTouch.clientX, primaryTouch.clientY, {cause: 'touchMove'});          e.preventDefault(); // Disable scroll      } @@ -467,7 +468,7 @@ class TextScanner extends EventDispatcher {          return {definitions, sentence, type: 'kanji'};      } -    async _searchAt(x, y, cause) { +    async _searchAt(x, y, input) {          if (this._pendingLookup) { return; }          try { @@ -480,7 +481,7 @@ class TextScanner extends EventDispatcher {              const textSource = this._documentUtil.getRangeFromPoint(x, y, this._deepContentScan);              try { -                await this._search(textSource, cause); +                await this._search(textSource, input);              } finally {                  if (textSource !== null) {                      textSource.cleanup(); @@ -503,7 +504,7 @@ class TextScanner extends EventDispatcher {              }          } -        await this._searchAt(x, y, 'mouse'); +        await this._searchAt(x, y, {cause: 'mouse'});      }      async _searchAtFromTouchStart(x, y) { @@ -511,7 +512,7 @@ class TextScanner extends EventDispatcher {          const textSourceCurrentPrevious = this._textSourceCurrent !== null ? this._textSourceCurrent.clone() : null; -        await this._searchAt(x, y, 'touchStart'); +        await this._searchAt(x, y, {cause: 'touchStart'});          if (              this._textSourceCurrent !== null && |