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 1/2] 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} Date: Tue, 6 Aug 2019 18:06:47 +0100 Subject: [PATCH 2/2] delint Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../tabs/user/PreferencesUserSettingsTab.js | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.js b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.js index e02524a7b3..6507854e59 100644 --- a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.js @@ -1,5 +1,6 @@ /* Copyright 2019 New Vector Ltd +Copyright 2019 Michael Telatynski <7t3chguy@gmail.com> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -20,8 +21,8 @@ import {SettingLevel} from "../../../../../settings/SettingsStore"; import LabelledToggleSwitch from "../../../elements/LabelledToggleSwitch"; import SettingsStore from "../../../../../settings/SettingsStore"; import Field from "../../../elements/Field"; -const sdk = require("../../../../.."); -const PlatformPeg = require("../../../../../PlatformPeg"); +import sdk from "../../../../.."; +import PlatformPeg from "../../../../../PlatformPeg"; export default class PreferencesUserSettingsTab extends React.Component { static COMPOSER_SETTINGS = [ @@ -131,23 +132,26 @@ export default class PreferencesUserSettingsTab extends React.Component { render() { let autoLaunchOption = null; if (this.state.autoLaunchSupported) { - autoLaunchOption = ; + autoLaunchOption = ; } let autoHideMenuOption = null; if (this.state.alwaysShowMenuBarSupported) { - autoHideMenuOption = ; + autoHideMenuOption = ; } let minimizeToTrayOption = null; if (this.state.minimizeToTraySupported) { - minimizeToTrayOption = ; + minimizeToTrayOption = ; } return ( @@ -168,9 +172,12 @@ export default class PreferencesUserSettingsTab extends React.Component { {minimizeToTrayOption} {autoHideMenuOption} {autoLaunchOption} - + );