diff --git a/core/src/components/main-app.js b/core/src/components/main-app.js index 446f55cf..f8e80280 100644 --- a/core/src/components/main-app.js +++ b/core/src/components/main-app.js @@ -31,8 +31,6 @@ class MainApp extends connect(store)(LitElement) { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.electronAPI.showMyMenu() }) } } diff --git a/electron.js b/electron.js index 87a59cf1..fd189208 100644 --- a/electron.js +++ b/electron.js @@ -3,6 +3,7 @@ const { BrowserWindow, ipcMain, Menu, + MenuItem, Notification, Tray, dialog, @@ -1133,6 +1134,42 @@ function createWindow() { myWindow.once('ready-to-show', myWindow.show) myWindow.loadURL('http://localhost:12388/app') + myWindow.webContents.on('context-menu', (event, params) => { + event.preventDefault() + const menu = new Menu() + // Add each spelling suggestion (if any) + if (params.dictionarySuggestions && params.dictionarySuggestions.length > 0) { + for (const suggestion of params.dictionarySuggestions) { + menu.append(new MenuItem({ + label: suggestion, + click: () => myWindow.webContents.replaceMisspelling(suggestion) + })) + } + } + // Allow users to add the misspelled word to the dictionary if there is one + if (params.misspelledWord) { + menu.append( + new MenuItem({ + label: 'Add to dictionary', + click: () => myWindow.webContents.session.addWordToSpellCheckerDictionary(params.misspelledWord) + }) + ) + } + // Add a separator if we added suggestions or add-to-dictionary items + if ((params.dictionarySuggestions && params.dictionarySuggestions.length > 0) || params.misspelledWord) { + menu.append(new MenuItem({ type: 'separator' })) + } + // Now add your existing menu items (like copy, paste, etc.) + menu.append(new MenuItem({ role: 'undo' })) + menu.append(new MenuItem({ role: 'redo' })) + menu.append(new MenuItem({ type: 'separator' })) + menu.append(new MenuItem({ role: 'cut' })) + menu.append(new MenuItem({ role: 'copy' })) + menu.append(new MenuItem({ role: 'paste' })) + menu.append(new MenuItem({ role: 'selectAll' })) + menu.popup({ window: myWindow }) + }) + // Save current window config when closing myWindow.on('close', () => { // Save current maximized state @@ -1364,57 +1401,6 @@ if (!isLock) { checkOsPlatform() }) - ipcMain.on('show-my-menu', (event) => { - let homePageOptions = Menu.buildFromTemplate([ - { - label: i18n.__("electron_translate_35"), - role: 'copy' - }, - { - label: i18n.__("electron_translate_36"), - role: 'paste' - }, - { - type: "separator" - }, - { - label: i18n.__("electron_translate_37"), - submenu: [ - { - label: i18n.__("electron_translate_38"), - role: 'zoomIn' - }, - { - label: i18n.__("electron_translate_39"), - role: 'zoomOut' - }, - { - label: i18n.__("electron_translate_40"), - role: 'resetZoom' - }, - { - type: 'separator' - }, - { - label: i18n.__("electron_translate_41"), - role: 'togglefullscreen' - } - ] - }, - { - type: "separator" - }, - { - label: i18n.__("electron_translate_42"), - click: function () { - createNewWindow() - }, - } - ]) - - homePageOptions.popup(myWindow) - }) - autoUpdater.on('update-available', (event) => { const downloadOpts = { type: 'info', diff --git a/lib/preload.js b/lib/preload.js index b51263bd..6b67123a 100644 --- a/lib/preload.js +++ b/lib/preload.js @@ -4,7 +4,6 @@ contextBridge.exposeInMainWorld('electronAPI', { setStartCore: () => ipcRenderer.send('set-start-core'), startCore: () => ipcRenderer.send('start-core-electron'), checkForUpdate: () => ipcRenderer.send('check-for-update'), - showMyMenu: () => ipcRenderer.send('show-my-menu'), focusApp: () => ipcRenderer.send('focus-app'), clearMyCache: () => ipcRenderer.send('clear-all-cache'), clearCache() { diff --git a/plugins/plugins/core/become-minter/become-minter.src.js b/plugins/plugins/core/become-minter/become-minter.src.js index 484a59bb..2918fa21 100644 --- a/plugins/plugins/core/become-minter/become-minter.src.js +++ b/plugins/plugins/core/become-minter/become-minter.src.js @@ -95,8 +95,6 @@ class BecomeMinter extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/components/qortal-info-view.js b/plugins/plugins/core/components/qortal-info-view.js index 4be95e02..d7e876e2 100644 --- a/plugins/plugins/core/components/qortal-info-view.js +++ b/plugins/plugins/core/components/qortal-info-view.js @@ -329,8 +329,6 @@ class QortalInfoView extends LitElement { firstUpdated() { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/data-management/data-management.src.js b/plugins/plugins/core/data-management/data-management.src.js index cb7df1d4..f910dd2c 100644 --- a/plugins/plugins/core/data-management/data-management.src.js +++ b/plugins/plugins/core/data-management/data-management.src.js @@ -209,8 +209,6 @@ class DataManagement extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/group-management/group-management.src.js b/plugins/plugins/core/group-management/group-management.src.js index ffa52260..ab6d0635 100644 --- a/plugins/plugins/core/group-management/group-management.src.js +++ b/plugins/plugins/core/group-management/group-management.src.js @@ -822,8 +822,6 @@ class GroupManagement extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/minting-info/minting-info.src.js b/plugins/plugins/core/minting-info/minting-info.src.js index 9f190860..11d9af0a 100644 --- a/plugins/plugins/core/minting-info/minting-info.src.js +++ b/plugins/plugins/core/minting-info/minting-info.src.js @@ -252,8 +252,6 @@ class MintingInfo extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/name-registration/name-registration.src.js b/plugins/plugins/core/name-registration/name-registration.src.js index 235f265c..364287c2 100644 --- a/plugins/plugins/core/name-registration/name-registration.src.js +++ b/plugins/plugins/core/name-registration/name-registration.src.js @@ -425,8 +425,6 @@ class NameRegistration extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/names-market/names-market.src.js b/plugins/plugins/core/names-market/names-market.src.js index 08eb7af2..cdc72785 100644 --- a/plugins/plugins/core/names-market/names-market.src.js +++ b/plugins/plugins/core/names-market/names-market.src.js @@ -367,8 +367,6 @@ class NamesMarket extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/node-management/node-management.src.js b/plugins/plugins/core/node-management/node-management.src.js index b1c2eeeb..4f4630e1 100644 --- a/plugins/plugins/core/node-management/node-management.src.js +++ b/plugins/plugins/core/node-management/node-management.src.js @@ -204,8 +204,6 @@ class NodeManagement extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/overview-page/overview-page.src.js b/plugins/plugins/core/overview-page/overview-page.src.js index 1c8a266a..3a84ebe3 100644 --- a/plugins/plugins/core/overview-page/overview-page.src.js +++ b/plugins/plugins/core/overview-page/overview-page.src.js @@ -170,8 +170,6 @@ class OverviewPage extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/puzzles/puzzles.src.js b/plugins/plugins/core/puzzles/puzzles.src.js index 8d81d108..26af1c91 100644 --- a/plugins/plugins/core/puzzles/puzzles.src.js +++ b/plugins/plugins/core/puzzles/puzzles.src.js @@ -161,8 +161,6 @@ class Puzzles extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/q-app/q-apps.src.js b/plugins/plugins/core/q-app/q-apps.src.js index fe98c187..693618ea 100644 --- a/plugins/plugins/core/q-app/q-apps.src.js +++ b/plugins/plugins/core/q-app/q-apps.src.js @@ -260,8 +260,6 @@ class QApps extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/q-chat/q-chat.src.js b/plugins/plugins/core/q-chat/q-chat.src.js index 71b2f597..27f7dfbe 100644 --- a/plugins/plugins/core/q-chat/q-chat.src.js +++ b/plugins/plugins/core/q-chat/q-chat.src.js @@ -367,10 +367,6 @@ class Chat extends LitElement { } target = target.parentNode } - - // If it doesn't, show the default Electron context menu - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/q-website/q-websites.src.js b/plugins/plugins/core/q-website/q-websites.src.js index 0bb07ed9..6ffcd272 100644 --- a/plugins/plugins/core/q-website/q-websites.src.js +++ b/plugins/plugins/core/q-website/q-websites.src.js @@ -258,8 +258,6 @@ class QWebsites extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js index 4134a335..97cdd626 100644 --- a/plugins/plugins/core/qdn/browser/browser.src.js +++ b/plugins/plugins/core/qdn/browser/browser.src.js @@ -242,8 +242,6 @@ class WebBrowser extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/qdn/publish/publish.src.js b/plugins/plugins/core/qdn/publish/publish.src.js index 14ae05b6..68425911 100644 --- a/plugins/plugins/core/qdn/publish/publish.src.js +++ b/plugins/plugins/core/qdn/publish/publish.src.js @@ -293,8 +293,6 @@ class PublishData extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/qortal-lottery/qortal-lottery.src.js b/plugins/plugins/core/qortal-lottery/qortal-lottery.src.js index f0ccf68f..93ec0906 100644 --- a/plugins/plugins/core/qortal-lottery/qortal-lottery.src.js +++ b/plugins/plugins/core/qortal-lottery/qortal-lottery.src.js @@ -243,8 +243,6 @@ class QortalLottery extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/reward-share/reward-share.src.js b/plugins/plugins/core/reward-share/reward-share.src.js index d59aceec..72a933aa 100644 --- a/plugins/plugins/core/reward-share/reward-share.src.js +++ b/plugins/plugins/core/reward-share/reward-share.src.js @@ -200,8 +200,6 @@ class RewardShare extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/sponsorship-list/sponsorship-list.src.js b/plugins/plugins/core/sponsorship-list/sponsorship-list.src.js index b7819a66..293eee32 100644 --- a/plugins/plugins/core/sponsorship-list/sponsorship-list.src.js +++ b/plugins/plugins/core/sponsorship-list/sponsorship-list.src.js @@ -401,8 +401,6 @@ class SponsorshipList extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/trade-bot/trade-bot-portal.src.js b/plugins/plugins/core/trade-bot/trade-bot-portal.src.js index 909a40e5..20f87f43 100644 --- a/plugins/plugins/core/trade-bot/trade-bot-portal.src.js +++ b/plugins/plugins/core/trade-bot/trade-bot-portal.src.js @@ -1021,8 +1021,6 @@ class TradeBotPortal extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/trade-portal/trade-portal.src.js b/plugins/plugins/core/trade-portal/trade-portal.src.js index f42d3ab3..f5115b30 100644 --- a/plugins/plugins/core/trade-portal/trade-portal.src.js +++ b/plugins/plugins/core/trade-portal/trade-portal.src.js @@ -588,8 +588,6 @@ class TradePortal extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) } diff --git a/plugins/plugins/core/wallet/wallet-app.src.js b/plugins/plugins/core/wallet/wallet-app.src.js index 9f21db4b..73091812 100644 --- a/plugins/plugins/core/wallet/wallet-app.src.js +++ b/plugins/plugins/core/wallet/wallet-app.src.js @@ -2278,8 +2278,6 @@ class MultiWallet extends LitElement { if (!isElectron()) { } else { window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() }) }