Nativefier/app/src/components/contextMenu/contextMenu.js

48 lines
1.5 KiB
JavaScript
Raw Normal View History

import {Menu, ipcMain, shell, clipboard, BrowserWindow} from 'electron';
2016-01-28 04:47:40 +01:00
function initContextMenu(mainWindow) {
2016-01-29 15:04:41 +01:00
ipcMain.on('contextMenuOpened', (event, targetHref) => {
const contextMenuTemplate = [
{
label: 'Open with default browser',
2016-01-29 15:04:41 +01:00
click: () => {
if (targetHref) {
shell.openExternal(targetHref);
return;
}
}
},
{
label: 'Open in new window',
2016-01-29 15:04:41 +01:00
click: () => {
if (targetHref) {
new BrowserWindow().loadURL(targetHref);
return;
}
mainWindow.useDefaultWindowBehaviour = true;
mainWindow.webContents.send('contextMenuClosed');
}
},
{
label: 'Copy link location',
click: () => {
if (targetHref) {
clipboard.writeText(targetHref);
return;
}
mainWindow.useDefaultWindowBehaviour = true;
mainWindow.webContents.send('contextMenuClosed');
}
}
];
const contextMenu = Menu.buildFromTemplate(contextMenuTemplate);
contextMenu.popup(mainWindow);
mainWindow.contextMenuOpen = true;
});
}
export default initContextMenu;