From 4de4f14d102fab85d7485ed01d6c30471b6db7fc Mon Sep 17 00:00:00 2001 From: Emmanouil Konstantinidis Date: Mon, 19 Jun 2017 20:19:00 +0100 Subject: [PATCH 1/3] Tray Icon, toggle window on click --- main.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/main.js b/main.js index 8d71964bd..9e582d614 100644 --- a/main.js +++ b/main.js @@ -43,7 +43,15 @@ app.on('ready', function() { ]); trayIcon.setToolTip('GitHub Notifications on your menu bar.'); - trayIcon.setContextMenu(trayMenu); + + if (isLinux) { + trayIcon.setContextMenu(trayMenu); + } else { + trayIcon.on('click', () => { + appWindow.isFocused() ? appWindow.hide() : appWindow.show(); + }); + } + return trayIcon; } From 929cc097f7d7e6db33f51c1e32f85522977a0448 Mon Sep 17 00:00:00 2001 From: Emmanouil Konstantinidis Date: Mon, 19 Jun 2017 21:14:56 +0100 Subject: [PATCH 2/3] Hide Gitify if opening the window --- src/js/utils/notifications.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/js/utils/notifications.js b/src/js/utils/notifications.js index 3cf5f4db0..c7bf899df 100644 --- a/src/js/utils/notifications.js +++ b/src/js/utils/notifications.js @@ -1,3 +1,5 @@ +const { remote } = require('electron'); + import { reOpenWindow, openExternalLink } from '../utils/comms'; import { generateGitHubWebUrl } from '../utils/helpers'; @@ -55,7 +57,10 @@ export default { nativeNotification.onclick = function() { if (count === 1) { + const appWindow = remote.getCurrentWindow(); const url = generateGitHubWebUrl(notificationUrl); + + appWindow.hide(); openExternalLink(url); } else { reOpenWindow(); From 629f13d603b1e3ef24c4f0aaf6fce5a142720343 Mon Sep 17 00:00:00 2001 From: Emmanouil Konstantinidis Date: Mon, 19 Jun 2017 22:00:47 +0100 Subject: [PATCH 3/3] Fix Tests --- src/js/__mocks__/electron.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/js/__mocks__/electron.js b/src/js/__mocks__/electron.js index df4d53a37..63da587c1 100644 --- a/src/js/__mocks__/electron.js +++ b/src/js/__mocks__/electron.js @@ -34,6 +34,7 @@ const browserWindow = { }, on: () => {}, close: jest.fn(), + hide: jest.fn(), destroy: jest.fn(), }; @@ -48,6 +49,7 @@ module.exports = { app: { getVersion: () => '0.0.1', }, + getCurrentWindow: jest.fn(() => browserWindow), }, ipcRenderer: { send: jest.fn(),