diff options
author | Amine Mouafik <amine@mouafik.fr> | 2020-03-02 03:06:30 +0100 |
---|---|---|
committer | Amine Mouafik <amine@mouafik.fr> | 2020-03-02 03:06:30 +0100 |
commit | b18ff4240e398ee338ad0aaf7dc639b962534c72 (patch) | |
tree | cb10868736921293c93c5628b8912e8c6f78b60f /src/webview | |
parent | Keep separation of concern between context menu / spellchecker (diff) | |
download | ferdium-app-b18ff4240e398ee338ad0aaf7dc639b962534c72.tar.gz ferdium-app-b18ff4240e398ee338ad0aaf7dc639b962534c72.tar.zst ferdium-app-b18ff4240e398ee338ad0aaf7dc639b962534c72.zip |
Add paste as plain text to context menu
Via https://github.com/electron-userland/electron-spellchecker/issues/125
Diffstat (limited to 'src/webview')
-rw-r--r-- | src/webview/contextMenu.js | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/webview/contextMenu.js b/src/webview/contextMenu.js index f02dd1a01..7ab60d251 100644 --- a/src/webview/contextMenu.js +++ b/src/webview/contextMenu.js | |||
@@ -1,7 +1,33 @@ | |||
1 | import { remote } from "electron"; | ||
1 | import { ContextMenuBuilder, ContextMenuListener } from "electron-spellchecker"; | 2 | import { ContextMenuBuilder, ContextMenuListener } from "electron-spellchecker"; |
2 | 3 | ||
4 | const webContents = remote.getCurrentWebContents(); | ||
5 | |||
3 | export default async function setupContextMenu(handler) { | 6 | export default async function setupContextMenu(handler) { |
4 | let contextMenuBuilder = new ContextMenuBuilder(handler); | 7 | const processMenu = (menu, menuInfo) => { |
8 | if ( | ||
9 | menuInfo.editFlags.canPaste && | ||
10 | !menuInfo.linkText && | ||
11 | !menuInfo.hasImageContents | ||
12 | ) { | ||
13 | menu.insert( | ||
14 | 3, | ||
15 | new remote.MenuItem({ | ||
16 | label: "Paste as plain text", | ||
17 | accelerator: "CommandOrControl+Shift+V", | ||
18 | click: () => webContents.pasteAndMatchStyle() | ||
19 | }) | ||
20 | ); | ||
21 | } | ||
22 | return menu; | ||
23 | }; | ||
24 | |||
25 | const contextMenuBuilder = new ContextMenuBuilder( | ||
26 | handler, | ||
27 | null, | ||
28 | true, | ||
29 | processMenu | ||
30 | ); | ||
5 | // eslint-disable-next-line no-new | 31 | // eslint-disable-next-line no-new |
6 | new ContextMenuListener(info => { | 32 | new ContextMenuListener(info => { |
7 | contextMenuBuilder.showPopupMenu(info); | 33 | contextMenuBuilder.showPopupMenu(info); |