diff options
Diffstat (limited to 'ext/js')
| -rw-r--r-- | ext/js/app/frontend.js | 17 | ||||
| -rw-r--r-- | ext/js/pages/settings/keyboard-shortcuts-controller.js | 1 | 
2 files changed, 12 insertions, 6 deletions
| diff --git a/ext/js/app/frontend.js b/ext/js/app/frontend.js index e1b531d4..7913d7d8 100644 --- a/ext/js/app/frontend.js +++ b/ext/js/app/frontend.js @@ -79,7 +79,8 @@ class Frontend {          ]);          this._hotkeyHandler.registerActions([ -            ['scanSelectedText', this._onActionScanSelectedText.bind(this)] +            ['scanSelectedText', this._onActionScanSelectedText.bind(this)], +            ['scanTextAtCaret',  this._onActionScanTextAtCaret.bind(this)]          ]);      } @@ -172,7 +173,11 @@ class Frontend {      // Action handlers      _onActionScanSelectedText() { -        this._scanSelectedText(); +        this._scanSelectedText(false); +    } + +    _onActionScanTextAtCaret() { +        this._scanSelectedText(true);      }      // API message handlers @@ -679,19 +684,19 @@ class Frontend {          };      } -    async _scanSelectedText() { -        const range = this._getFirstNonEmptySelectionRange(); +    async _scanSelectedText(allowEmptyRange) { +        const range = this._getFirstSelectionRange(allowEmptyRange);          if (range === null) { return false; }          const source = new TextSourceRange(range, range.toString(), null, null);          await this._textScanner.search(source, {focus: true, restoreSelection: true});          return true;      } -    _getFirstNonEmptySelectionRange() { +    _getFirstSelectionRange(allowEmptyRange) {          const selection = window.getSelection();          for (let i = 0, ii = selection.rangeCount; i < ii; ++i) {              const range = selection.getRangeAt(i); -            if (range.toString().length > 0) { +            if (range.toString().length > 0 || allowEmptyRange) {                  return range;              }          } diff --git a/ext/js/pages/settings/keyboard-shortcuts-controller.js b/ext/js/pages/settings/keyboard-shortcuts-controller.js index aeff15b6..5e7b7783 100644 --- a/ext/js/pages/settings/keyboard-shortcuts-controller.js +++ b/ext/js/pages/settings/keyboard-shortcuts-controller.js @@ -52,6 +52,7 @@ class KeyboardShortcutController {              ['playAudioFromSource',              {scopes: new Set(['popup', 'search']), argument: {template: 'hotkey-argument-audio-source', default: 'jpod101'}}],              ['copyHostSelection',                {scopes: new Set(['popup'])}],              ['scanSelectedText',                 {scopes: new Set(['web'])}], +            ['scanTextAtCaret',                  {scopes: new Set(['web'])}],              ['toggleOption',                     {scopes: new Set(['popup', 'search']), argument: {template: 'hotkey-argument-setting-path', default: ''}}]          ]);      } |