From e24075e1a91ab8b58bb5836cf7abcefae5cbf8c3 Mon Sep 17 00:00:00 2001 From: James Maa Date: Mon, 10 Jun 2024 10:59:54 -0700 Subject: 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 --- ext/js/background/backend.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'ext/js/background') 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}}); -- cgit v1.2.3