From 3c2aeecebe42d52e9760eeea799e4c4fa98469dc Mon Sep 17 00:00:00 2001 From: SteVen Batten Date: Wed, 18 Jan 2023 11:22:30 -0800 Subject: [PATCH] affectsConfiguration adoption refs #169806 --- src/vs/platform/windows/electron-main/windowImpl.ts | 10 ++++++---- src/vs/workbench/browser/layout.ts | 12 +++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/vs/platform/windows/electron-main/windowImpl.ts b/src/vs/platform/windows/electron-main/windowImpl.ts index 6b301a023259c..de665e04adca6 100644 --- a/src/vs/platform/windows/electron-main/windowImpl.ts +++ b/src/vs/platform/windows/electron-main/windowImpl.ts @@ -910,10 +910,12 @@ export class CodeWindow extends Disposable implements ICodeWindow { private onConfigurationUpdated(e?: IConfigurationChangeEvent): void { // Menubar - const newMenuBarVisibility = this.getMenuBarVisibility(); - if (newMenuBarVisibility !== this.currentMenuBarVisibility) { - this.currentMenuBarVisibility = newMenuBarVisibility; - this.setMenuBarVisibility(newMenuBarVisibility); + if (!e || e.affectsConfiguration('window.menuBarVisibility')) { + const newMenuBarVisibility = this.getMenuBarVisibility(); + if (newMenuBarVisibility !== this.currentMenuBarVisibility) { + this.currentMenuBarVisibility = newMenuBarVisibility; + this.setMenuBarVisibility(newMenuBarVisibility); + } } // Proxy diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts index 08e5497f4e778..b522eaa28df0e 100644 --- a/src/vs/workbench/browser/layout.ts +++ b/src/vs/workbench/browser/layout.ts @@ -274,7 +274,17 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi }); // Configuration changes - this._register(this.configurationService.onDidChangeConfiguration(() => this.doUpdateLayoutConfiguration())); + this._register(this.configurationService.onDidChangeConfiguration((e) => { + if ([ + LegacyWorkbenchLayoutSettings.ACTIVITYBAR_VISIBLE, + LegacyWorkbenchLayoutSettings.SIDEBAR_POSITION, + LegacyWorkbenchLayoutSettings.STATUSBAR_VISIBLE, + 'window.menuBarVisibility', + 'window.titleBarStyle', + ].some(setting => e.affectsConfiguration(setting))) { + this.doUpdateLayoutConfiguration(); + } + })); // Fullscreen changes this._register(onDidChangeFullscreen(() => this.onFullscreenChanged()));