From 1f312e1f7f29fa80ff6d080faa8f7bb97e4384f0 Mon Sep 17 00:00:00 2001 From: Martin Gondermann Date: Tue, 28 Jun 2016 15:07:29 +0200 Subject: [PATCH] Add setting for "Toggle the window on tray icon click" --- src/browser/settings.jsx | 22 +++++++++++++++++++++- src/common/settings.js | 1 + src/main.js | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/browser/settings.jsx b/src/browser/settings.jsx index fa18d5a9..190935cf 100644 --- a/src/browser/settings.jsx +++ b/src/browser/settings.jsx @@ -62,6 +62,7 @@ var SettingsPage = React.createClass({ disablewebsecurity: this.state.disablewebsecurity, version: settings.version, minimizeToTray: this.state.minimizeToTray, + toggleWindowOnTrayIconClick: this.state.toggleWindowOnTrayIconClick, notifications: { flashWindow: this.state.notifications.flashWindow } @@ -116,9 +117,27 @@ var SettingsPage = React.createClass({ }); }, handleChangeMinimizeToTray: function() { + var isChecked = this.refs.minimizeToTray.getChecked(); this.setState({ - minimizeToTray: this.refs.minimizeToTray.getChecked() + minimizeToTray: isChecked }); + + if (!isChecked) { + this.setState({ + toggleWindowOnTrayIconClick: false + }); + } + }, + handleChangeToggleWindowOnTrayIconClick: function() { + if (this.refs.minimizeToTray.getChecked()) { + this.setState({ + toggleWindowOnTrayIconClick: this.refs.toggleWindowOnTrayIconClick.getChecked() + }); + } else { + this.setState({ + toggleWindowOnTrayIconClick: false + }); + } }, toggleShowTeamForm: function() { this.setState({ @@ -166,6 +185,7 @@ var SettingsPage = React.createClass({ if (process.platform === 'win32') { options.push(); + options.push(); } var options_row = (options.length > 0) ? ( diff --git a/src/common/settings.js b/src/common/settings.js index a524a546..3584ae17 100644 --- a/src/common/settings.js +++ b/src/common/settings.js @@ -27,6 +27,7 @@ var loadDefault = function(version) { trayIconTheme: '', disablewebsecurity: true, minimizeToTray: false, + toggleWindowOnTrayIconClick: false, version: 1, notifications: { flashWindow: 0 // 0 = flash never, 1 = only when idle (after 10 seconds), 2 = always diff --git a/src/main.js b/src/main.js index a33b92a2..eec217fb 100644 --- a/src/main.js +++ b/src/main.js @@ -234,7 +234,7 @@ app.on('ready', function() { mainWindow.show(); mainWindow.isHidden = false; } - else { + else if (config.toggleWindowOnTrayIconClick) { mainWindow.hide(); mainWindow.isHidden = true; }