From 1e9881dd7d5a5e0d8b44a3d9abf452515c44217d Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 5 Aug 2019 11:58:53 +0100 Subject: [PATCH] Allow setting in electron whether or not to auto hide menu bar Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/BasePlatform.js | 12 ++++++++ .../tabs/user/PreferencesUserSettingsTab.js | 30 ++++++++++++++++++- src/i18n/strings/en_EN.json | 1 + 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/BasePlatform.js b/src/BasePlatform.js index 803fe0e500..a97c14bf90 100644 --- a/src/BasePlatform.js +++ b/src/BasePlatform.js @@ -128,6 +128,18 @@ export default class BasePlatform { throw new Error("Unimplemented"); } + supportsAutoHideMenuBar(): boolean { + return false; + } + + async getAutoHideMenuBarEnabled(): boolean { + return false; + } + + async setAutoHideMenuBarEnabled(enabled: boolean): void { + throw new Error("Unimplemented"); + } + supportsMinimizeToTray(): boolean { return false; } diff --git a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.js b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.js index a645632dbc..e02524a7b3 100644 --- a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.js @@ -64,6 +64,8 @@ export default class PreferencesUserSettingsTab extends React.Component { this.state = { autoLaunch: false, autoLaunchSupported: false, + alwaysShowMenuBar: true, + alwaysShowMenuBarSupported: false, minimizeToTray: true, minimizeToTraySupported: false, autocompleteDelay: SettingsStore.getValueAt(SettingLevel.DEVICE, 'autocompleteDelay').toString(10), @@ -80,6 +82,13 @@ export default class PreferencesUserSettingsTab extends React.Component { autoLaunch = await platform.getAutoLaunchEnabled(); } + const alwaysShowMenuBarSupported = await platform.supportsAutoHideMenuBar(); + let alwaysShowMenuBar = true; + + if (alwaysShowMenuBarSupported) { + alwaysShowMenuBar = !await platform.getAutoHideMenuBarEnabled(); + } + const minimizeToTraySupported = await platform.supportsMinimizeToTray(); let minimizeToTray = true; @@ -87,13 +96,24 @@ export default class PreferencesUserSettingsTab extends React.Component { minimizeToTray = await platform.getMinimizeToTrayEnabled(); } - this.setState({autoLaunch, autoLaunchSupported, minimizeToTraySupported, minimizeToTray}); + this.setState({ + autoLaunch, + autoLaunchSupported, + alwaysShowMenuBarSupported, + alwaysShowMenuBar, + minimizeToTraySupported, + minimizeToTray, + }); } _onAutoLaunchChange = (checked) => { PlatformPeg.get().setAutoLaunchEnabled(checked).then(() => this.setState({autoLaunch: checked})); }; + _onAlwaysShowMenuBarChange = (checked) => { + PlatformPeg.get().setAutoHideMenuBarEnabled(!checked).then(() => this.setState({alwaysShowMenuBar: checked})); + }; + _onMinimizeToTrayChange = (checked) => { PlatformPeg.get().setMinimizeToTrayEnabled(checked).then(() => this.setState({minimizeToTray: checked})); }; @@ -116,6 +136,13 @@ export default class PreferencesUserSettingsTab extends React.Component { label={_t('Start automatically after system login')} />; } + let autoHideMenuOption = null; + if (this.state.alwaysShowMenuBarSupported) { + autoHideMenuOption = ; + } + let minimizeToTrayOption = null; if (this.state.minimizeToTraySupported) { minimizeToTrayOption = {_t("Advanced")} {this._renderGroup(PreferencesUserSettingsTab.ADVANCED_SETTINGS)} {minimizeToTrayOption} + {autoHideMenuOption} {autoLaunchOption}