From c388fd9f8ddefe5464e5060dc0295bd7b4d77f52 Mon Sep 17 00:00:00 2001 From: David Terry Date: Sun, 18 Dec 2016 22:30:08 +0100 Subject: [PATCH] add config setting to control whether alt should show the menu bar when hidden --- src/vs/code/electron-main/window.ts | 4 +++- src/vs/code/electron-main/windows.ts | 5 ++++- src/vs/platform/windows/common/windows.ts | 1 + src/vs/workbench/electron-browser/main.contribution.ts | 7 ++++++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/vs/code/electron-main/window.ts b/src/vs/code/electron-main/window.ts index a26de77fea4..085f6b48f65 100644 --- a/src/vs/code/electron-main/window.ts +++ b/src/vs/code/electron-main/window.ts @@ -656,8 +656,10 @@ export class VSCodeWindow implements IVSCodeWindow { } public setMenuBarVisibility(visible: boolean): void { + const windowConfig = this.configurationService.getConfiguration('window'); + this.win.setMenuBarVisibility(visible); - this.win.setAutoHideMenuBar(!visible); + this.win.setAutoHideMenuBar(windowConfig && windowConfig.autoHideMenuBar ? !visible : false); } public sendWhenReady(channel: string, ...args: any[]): void { diff --git a/src/vs/code/electron-main/windows.ts b/src/vs/code/electron-main/windows.ts index 7735e5d527f..32f4912623c 100644 --- a/src/vs/code/electron-main/windows.ts +++ b/src/vs/code/electron-main/windows.ts @@ -1144,13 +1144,16 @@ export class WindowsManager implements IWindowsMainService { // Update in settings const menuBarHidden = this.storageService.getItem(VSCodeWindow.menuBarHiddenKey, false); const newMenuBarHidden = !menuBarHidden; + + const windowConfig = this.configurationService.getConfiguration('window'); + this.storageService.setItem(VSCodeWindow.menuBarHiddenKey, newMenuBarHidden); // Update across windows WindowsManager.WINDOWS.forEach(w => w.setMenuBarVisibility(!newMenuBarHidden)); // Inform user if menu bar is now hidden - if (newMenuBarHidden) { + if (newMenuBarHidden && windowConfig && windowConfig.autoHideMenuBar) { const vscodeWindow = this.getWindowById(windowId); if (vscodeWindow) { vscodeWindow.send('vscode:showInfoMessage', nls.localize('hiddenMenuBar', "You can still access the menu bar by pressing the **Alt** key.")); diff --git a/src/vs/platform/windows/common/windows.ts b/src/vs/platform/windows/common/windows.ts index f978e32945f..07efadf2d82 100644 --- a/src/vs/platform/windows/common/windows.ts +++ b/src/vs/platform/windows/common/windows.ts @@ -94,4 +94,5 @@ export interface IWindowSettings { zoomLevel: number; titleBarStyle: 'native' | 'custom'; autoDetectHighContrast: boolean; + autoHideMenuBar: boolean; } diff --git a/src/vs/workbench/electron-browser/main.contribution.ts b/src/vs/workbench/electron-browser/main.contribution.ts index 53fd98f6881..e80fed6b325 100644 --- a/src/vs/workbench/electron-browser/main.contribution.ts +++ b/src/vs/workbench/electron-browser/main.contribution.ts @@ -200,6 +200,11 @@ let properties: { [path: string]: IJSONSchema; } = { 'type': 'boolean', 'default': false, 'description': nls.localize('showFullPath', "If enabled, will show the full path of opened files in the window title.") + }, + 'window.autoHideMenuBar': { + 'type': 'boolean', + 'default': true, + 'description': nls.localize('autoHideMenuBar', "If set to false, the menu bar will no longer be shown when pressing the alt key (linux / windows only)") } }; @@ -226,4 +231,4 @@ configurationRegistry.registerConfiguration({ 'title': nls.localize('windowConfigurationTitle', "Window"), 'type': 'object', 'properties': properties -}); \ No newline at end of file +}); -- GitLab