From b18ff4240e398ee338ad0aaf7dc639b962534c72 Mon Sep 17 00:00:00 2001 From: Amine Mouafik Date: Mon, 2 Mar 2020 03:06:30 +0100 Subject: Add paste as plain text to context menu Via https://github.com/electron-userland/electron-spellchecker/issues/125 --- src/webview/contextMenu.js | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'src/webview/contextMenu.js') 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 @@ +import { remote } from "electron"; import { ContextMenuBuilder, ContextMenuListener } from "electron-spellchecker"; +const webContents = remote.getCurrentWebContents(); + export default async function setupContextMenu(handler) { - let contextMenuBuilder = new ContextMenuBuilder(handler); + const processMenu = (menu, menuInfo) => { + if ( + menuInfo.editFlags.canPaste && + !menuInfo.linkText && + !menuInfo.hasImageContents + ) { + menu.insert( + 3, + new remote.MenuItem({ + label: "Paste as plain text", + accelerator: "CommandOrControl+Shift+V", + click: () => webContents.pasteAndMatchStyle() + }) + ); + } + return menu; + }; + + const contextMenuBuilder = new ContextMenuBuilder( + handler, + null, + true, + processMenu + ); // eslint-disable-next-line no-new new ContextMenuListener(info => { contextMenuBuilder.showPopupMenu(info); -- cgit v1.2.3-54-g00ecf