diff --git a/src/browser/index.jsx b/src/browser/index.jsx index a1097c75..059da87a 100644 --- a/src/browser/index.jsx +++ b/src/browser/index.jsx @@ -321,7 +321,9 @@ var showUnreadBadgeWindows = function(unreadCount, mentionCount) { // https://github.com/atom/electron/issues/4011 electron.ipcRenderer.send('win32-overlay', { overlayDataURL: dataURL, - description: description + description: description, + unreadCount: unreadCount, + mentionCount: mentionCount }); }; @@ -332,7 +334,7 @@ var showUnreadBadgeWindows = function(unreadCount, mentionCount) { const dataURL = badge.createDataURL('•'); sendBadge(dataURL, 'You have unread channels'); } else { - remote.getCurrentWindow().setOverlayIcon(null, ''); + sendBadge(null, 'You have no unread messages'); } } diff --git a/src/main.js b/src/main.js index 8dd38c02..f2a1b0f1 100644 --- a/src/main.js +++ b/src/main.js @@ -104,9 +104,22 @@ app.on('ready', function() { }); // Set overlay icon from dataURL + // Set trayicon to show "dot" ipc.on('win32-overlay', function(event, arg) { - var overlay = electron.nativeImage.createFromDataURL(arg.overlayDataURL); + const overlay = arg.overlayDataURL ? electron.nativeImage.createFromDataURL(arg.overlayDataURL) : null; mainWindow.setOverlayIcon(overlay, arg.description); + + var tray_image = null; + if (arg.mentionCount > 0) { + tray_image = 'tray_mention.png'; + } + else if (arg.unreadCount > 0) { + tray_image = 'tray_unread.png'; + } + else { + tray_image = 'tray.png'; + } + trayIcon.setImage(path.resolve(__dirname, 'resources', tray_image)); }); } diff --git a/src/resources/tray_mention.png b/src/resources/tray_mention.png new file mode 100644 index 00000000..3a3ee1a9 Binary files /dev/null and b/src/resources/tray_mention.png differ diff --git a/src/resources/tray_unread.png b/src/resources/tray_unread.png new file mode 100644 index 00000000..4b2a7ea5 Binary files /dev/null and b/src/resources/tray_unread.png differ