From e493a50a3b4189bbc9058cc74ab29575f93289dc Mon Sep 17 00:00:00 2001 From: SteVen Batten Date: Tue, 27 Aug 2019 17:17:34 -0700 Subject: [PATCH] equate editor area hidden with maximized panel fixes #78175 --- .../workbench/browser/actions/layoutActions.ts | 3 +-- src/vs/workbench/browser/layout.ts | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/browser/actions/layoutActions.ts b/src/vs/workbench/browser/actions/layoutActions.ts index 51962ccc1b8..59b4771c906 100644 --- a/src/vs/workbench/browser/actions/layoutActions.ts +++ b/src/vs/workbench/browser/actions/layoutActions.ts @@ -234,8 +234,7 @@ export class ToggleEditorVisibilityAction extends Action { } run(): Promise { - const hideEditor = this.layoutService.isVisible(Parts.EDITOR_PART); - this.layoutService.setEditorHidden(hideEditor); + this.layoutService.toggleMaximizedPanel(); return Promise.resolve(); } diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts index 5d474803a0f..acf30a7669a 100644 --- a/src/vs/workbench/browser/layout.ts +++ b/src/vs/workbench/browser/layout.ts @@ -220,8 +220,15 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi private registerLayoutListeners(): void { // Restore editor if hidden and it changes - this._register(this.editorService.onDidVisibleEditorsChange(() => this.setEditorHidden(false))); - this._register(this.editorGroupService.onDidActivateGroup(() => this.setEditorHidden(false))); + const showEditorIfHidden = () => { + if (this.state.editor.hidden) { + this.toggleMaximizedPanel(); + } + }; + + + this._register(this.editorService.onDidVisibleEditorsChange(showEditorIfHidden)); + this._register(this.editorGroupService.onDidActivateGroup(showEditorIfHidden)); // Configuration changes this._register(this.configurationService.onDidChangeConfiguration(() => this.doUpdateLayoutConfiguration())); @@ -1110,7 +1117,12 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi if (this.workbenchGrid instanceof Grid) { const size = this.workbenchGrid.getViewSize(this.panelPartView); if (!this.isPanelMaximized()) { - this.state.panel.sizeBeforeMaximize = this.state.panel.position === Position.BOTTOM ? size.height : size.width; + if (this.state.panel.hidden) { + this.state.panel.sizeBeforeMaximize = this.workbenchGrid.getViewCachedVisibleSize(this.panelPartView) || this.panelPartView.minimumHeight; + } else { + this.state.panel.sizeBeforeMaximize = this.state.panel.position === Position.BOTTOM ? size.height : size.width; + } + this.storageService.store(Storage.PANEL_SIZE_BEFORE_MAXIMIZED, this.state.panel.sizeBeforeMaximize, StorageScope.GLOBAL); this.setEditorHidden(true); } else {