From de1637672aa74571feb17090bb3edd6f3667ba63 Mon Sep 17 00:00:00 2001 From: Writwick Das Date: Mon, 15 Jun 2020 17:01:31 +0200 Subject: [PATCH] enabled empty tray icon (fixes click event on macos) --- ElectronNET.API/Tray.cs | 9 +++++++++ ElectronNET.Host/api/tray.js | 14 +++++++++----- ElectronNET.Host/api/tray.ts | 16 +++++++++------- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/ElectronNET.API/Tray.cs b/ElectronNET.API/Tray.cs index 2781a1ff..76705a48 100644 --- a/ElectronNET.API/Tray.cs +++ b/ElectronNET.API/Tray.cs @@ -263,6 +263,15 @@ public void Show(string image, MenuItem[] menuItems) }); } + /// + /// Shows the Traybar (empty). + /// + /// The image. + public void Show(string image) + { + BridgeConnector.Socket.Emit("create-tray", image); + } + /// /// Destroys the tray icon immediately. /// diff --git a/ElectronNET.Host/api/tray.js b/ElectronNET.Host/api/tray.js index 6ed7e14c..77b30305 100644 --- a/ElectronNET.Host/api/tray.js +++ b/ElectronNET.Host/api/tray.js @@ -47,13 +47,17 @@ module.exports = (socket) => { } }); socket.on('create-tray', (image, menuItems) => { - const menu = electron_1.Menu.buildFromTemplate(menuItems); - addMenuItemClickConnector(menu.items, (id) => { - electronSocket.emit('trayMenuItemClicked', id); - }); const trayIcon = electron_1.nativeImage.createFromPath(image); tray = new electron_1.Tray(trayIcon); - tray.setContextMenu(menu); + + if (menuItems) { + const menu = electron_1.Menu.buildFromTemplate(menuItems); + addMenuItemClickConnector(menu.items, (id) => { + electronSocket.emit('trayMenuItemClicked', id); + }); + + tray.setContextMenu(menu); + } }); socket.on('tray-destroy', () => { if (tray) { diff --git a/ElectronNET.Host/api/tray.ts b/ElectronNET.Host/api/tray.ts index e7e8ef5b..3fa8d948 100644 --- a/ElectronNET.Host/api/tray.ts +++ b/ElectronNET.Host/api/tray.ts @@ -53,16 +53,18 @@ export = (socket: SocketIO.Socket) => { }); socket.on('create-tray', (image, menuItems) => { - const menu = Menu.buildFromTemplate(menuItems); - - addMenuItemClickConnector(menu.items, (id) => { - electronSocket.emit('trayMenuItemClicked', id); - }); - const trayIcon = nativeImage.createFromPath(image); tray = new Tray(trayIcon); - tray.setContextMenu(menu); + + if (menuItems) { + const menu = Menu.buildFromTemplate(menuItems); + + addMenuItemClickConnector(menu.items, (id) => { + electronSocket.emit('trayMenuItemClicked', id); + }); + tray.setContextMenu(menu); + } }); socket.on('tray-destroy', () => {