From efd5ffa9c91c5ea38d64f9a1874b2d732616e082 Mon Sep 17 00:00:00 2001 From: SteVen Batten Date: Fri, 25 Sep 2020 11:13:07 -0700 Subject: [PATCH] fixes #107448 --- src/vs/workbench/browser/layout.ts | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts index b17344ed60d..1fd4b7435f6 100644 --- a/src/vs/workbench/browser/layout.ts +++ b/src/vs/workbench/browser/layout.ts @@ -1543,6 +1543,7 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi } setPanelHidden(hidden: boolean, skipLayout?: boolean): void { + const wasHidden = this.state.panel.hidden; this.state.panel.hidden = hidden; // Return if not initialized fully #105480 @@ -1581,21 +1582,23 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi this.toggleMaximizedPanel(); } - // Propagate layout changes to grid - if (!skipLayout) { - this.workbenchGrid.setViewVisible(this.panelPartView, !hidden); - // If in process of showing, toggle whether or not panel is maximized - if (!hidden) { - if (isPanelMaximized !== panelOpensMaximized) { - this.toggleMaximizedPanel(); - } - } - else { - // If in process of hiding, remember whether the panel is maximized or not - this.state.panel.wasLastMaximized = isPanelMaximized; - } + // Don't proceed if we have already done this before + if (wasHidden === hidden) { + return; } + // Propagate layout changes to grid + this.workbenchGrid.setViewVisible(this.panelPartView, !hidden); + // If in process of showing, toggle whether or not panel is maximized + if (!hidden) { + if (isPanelMaximized !== panelOpensMaximized) { + this.toggleMaximizedPanel(); + } + } + else { + // If in process of hiding, remember whether the panel is maximized or not + this.state.panel.wasLastMaximized = isPanelMaximized; + } // Remember in settings if (!hidden) { this.storageService.store(Storage.PANEL_HIDDEN, 'false', StorageScope.WORKSPACE);