diff options
author | James Maa <jmaa@berkeley.edu> | 2024-06-10 10:59:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-10 17:59:54 +0000 |
commit | e24075e1a91ab8b58bb5836cf7abcefae5cbf8c3 (patch) | |
tree | 57881c2de6a9d75185a390741d404d61d5c9ce69 /ext/js/background | |
parent | 8eea3661714c64857aa32a8662f7cca6674dd3a4 (diff) |
Add context menu interface for Yomitan (#1028)
* --wip-- [skip ci]
* Draft
* Remove weird code
* Use existing API instead of dulpicating
* Small improvements
* remove console.log
* remove console.log
* Add setting for contextMenu
* Fix test
* Address comments
* Add option-util upgrade
* fix option-utils
Diffstat (limited to 'ext/js/background')
-rw-r--r-- | ext/js/background/backend.js | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js index a04566c9..88912b70 100644 --- a/ext/js/background/backend.js +++ b/ext/js/background/backend.js @@ -1310,6 +1310,21 @@ export class Backend { this._clipboardMonitor.stop(); } + if (options.general.enableContextMenuScanSelected) { + chrome.contextMenus.create({ + id: 'yomitan_lookup', + title: 'Lookup in Yomitan', + contexts: ['selection'], + }); + chrome.contextMenus.onClicked.addListener((info) => { + if (info.selectionText) { + this._sendMessageAllTabsIgnoreResponse({action: 'frontendScanSelectedText'}); + } + }); + } else { + chrome.contextMenus.remove('yomitan_lookup', () => this._checkLastError(chrome.runtime.lastError)); + } + void this._accessibilityController.update(this._getOptionsFull(false)); this._sendMessageAllTabsIgnoreResponse({action: 'applicationOptionsUpdated', params: {source}}); |