提交 3e373312 编写于 作者: D David Terry

menubar visibility is updated from within each window, rather than from outside

上级 90857a57
......@@ -117,6 +117,12 @@ export enum ReadyState {
READY
}
interface IConfiguration {
window: {
menuBarVisibility: 'visible' | 'toggle' | 'hidden';
};
}
export interface IVSCodeWindow {
id: number;
readyState: ReadyState;
......@@ -142,6 +148,7 @@ export class VSCodeWindow implements IVSCodeWindow {
private _extensionDevelopmentPath: string;
private _isExtensionTestHost: boolean;
private windowState: IWindowState;
private currentMenuBarVisibility: '' | 'visible' | 'toggle' | 'hidden';
private currentWindowMode: WindowMode;
private whenReadyCallbacks: TValueCallback<VSCodeWindow>[];
......@@ -239,8 +246,20 @@ export class VSCodeWindow implements IVSCodeWindow {
this.setMenuBarVisibility(windowConfig && windowConfig.menuBarVisibility);
this.registerListeners();
this.configurationService.onDidUpdateConfiguration(e => this.onConfigurationUpdated(e.config));
}
private onConfigurationUpdated(config: IConfiguration): void {
let newMenuBarVisibility = config && config.window && config.window.menuBarVisibility;
if (newMenuBarVisibility !== this.currentMenuBarVisibility) {
this.currentMenuBarVisibility = newMenuBarVisibility;
this.setMenuBarVisibility(newMenuBarVisibility);
}
};
public hasHiddenTitleBarStyle(): boolean {
return this.hiddenTitleBarStyle;
}
......@@ -656,7 +675,7 @@ export class VSCodeWindow implements IVSCodeWindow {
const windowConfig = this.configurationService.getConfiguration<IWindowSettings>('window');
let menuBarVisibility = windowConfig && windowConfig.menuBarVisibility;
if (typeof menuBarVisibility !== 'string') {
menuBarVisibility = 'toggle';
menuBarVisibility = willBeFullScreen ? 'toggle' : 'visible';
};
this.setMenuBarVisibility(menuBarVisibility, false);
......
......@@ -90,12 +90,6 @@ interface INativeOpenDialogOptions {
window?: VSCodeWindow;
}
interface IConfiguration {
window: {
menuBarVisibility: 'visible' | 'toggle' | 'hidden';
};
}
const ReopenFoldersSetting = {
ALL: 'all',
ONE: 'one',
......@@ -154,7 +148,6 @@ export class WindowsManager implements IWindowsMainService {
private initialUserEnv: platform.IProcessEnvironment;
private windowsState: IWindowsState;
private currentMenuBarVisibility: '' | 'visible' | 'toggle' | 'hidden';
private _onRecentPathsChange = new Emitter<void>();
onRecentPathsChange: CommonEvent<void> = this._onRecentPathsChange.event;
......@@ -282,20 +275,8 @@ export class WindowsManager implements IWindowsMainService {
// Update jump list when recent paths change
this.onRecentPathsChange(() => this.updateWindowsJumpList());
this.configurationService.onDidUpdateConfiguration(e => this.onConfigurationUpdated(e.config));
}
private onConfigurationUpdated(config: IConfiguration): void {
let newMenuBarVisibility = config && config.window && config.window.menuBarVisibility;
if (newMenuBarVisibility !== this.currentMenuBarVisibility) {
this.currentMenuBarVisibility = newMenuBarVisibility;
this.getWindows().forEach(w => w.setMenuBarVisibility(newMenuBarVisibility));
}
};
private onBroadcast(event: string, payload: any): void {
// Theme changes
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册