From c952a8876d6010a85ba66dc46864405d8ae441c3 Mon Sep 17 00:00:00 2001 From: SteVen Batten Date: Mon, 15 Jul 2019 21:57:36 +0000 Subject: [PATCH] fixes #68663 --- src/vs/workbench/browser/layout.ts | 8 ++++++++ src/vs/workbench/browser/parts/panel/panelPart.ts | 9 ++++++++- src/vs/workbench/browser/parts/sidebar/sidebarPart.ts | 7 +++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts index b478adbb976..88e9676f1e7 100644 --- a/src/vs/workbench/browser/layout.ts +++ b/src/vs/workbench/browser/layout.ts @@ -712,6 +712,14 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi this.workbenchGrid = new Grid(this.editorPartView, { proportionalLayout: false }); this.container.prepend(this.workbenchGrid.element); + + this._register((this.sideBarPartView as SidebarPart).onDidVisibilityChange((visible) => { + this.setSideBarHidden(!visible, true); + })); + + this._register((this.panelPartView as PanelPart).onDidVisibilityChange((visible) => { + this.setPanelHidden(!visible, true); + })); } else { this.workbenchGrid = instantiationService.createInstance( WorkbenchLegacyLayout, diff --git a/src/vs/workbench/browser/parts/panel/panelPart.ts b/src/vs/workbench/browser/parts/panel/panelPart.ts index 6d67a653be8..88eb05032e8 100644 --- a/src/vs/workbench/browser/parts/panel/panelPart.ts +++ b/src/vs/workbench/browser/parts/panel/panelPart.ts @@ -5,7 +5,7 @@ import 'vs/css!./media/panelpart'; import { IAction } from 'vs/base/common/actions'; -import { Event } from 'vs/base/common/event'; +import { Event, Emitter } from 'vs/base/common/event'; import { Registry } from 'vs/platform/registry/common/platform'; import { ActionsOrientation } from 'vs/base/browser/ui/actionbar/actionbar'; import { IPanel, ActivePanelContext, PanelFocusContext } from 'vs/workbench/common/panel'; @@ -64,6 +64,9 @@ export class PanelPart extends CompositePart implements IPanelService { get onDidPanelOpen(): Event<{ panel: IPanel, focus: boolean }> { return Event.map(this.onDidCompositeOpen.event, compositeOpen => ({ panel: compositeOpen.composite, focus: compositeOpen.focus })); } get onDidPanelClose(): Event { return this.onDidCompositeClose.event; } + private _onDidVisibilityChange = this._register(new Emitter()); + get onDidVisibilityChange(): Event { return this._onDidVisibilityChange.event; } + private activePanelContextKey: IContextKey; private panelFocusContextKey: IContextKey; @@ -433,6 +436,10 @@ export class PanelPart extends CompositePart implements IPanelService { this.storageService.store(PanelPart.PINNED_PANELS, value, StorageScope.GLOBAL); } + setVisible(visible: boolean): void { + this._onDidVisibilityChange.fire(visible); + } + toJSON(): object { return { type: Parts.PANEL_PART diff --git a/src/vs/workbench/browser/parts/sidebar/sidebarPart.ts b/src/vs/workbench/browser/parts/sidebar/sidebarPart.ts index 65f81f7be9b..942257ef3e9 100644 --- a/src/vs/workbench/browser/parts/sidebar/sidebarPart.ts +++ b/src/vs/workbench/browser/parts/sidebar/sidebarPart.ts @@ -51,6 +51,9 @@ export class SidebarPart extends CompositePart implements IViewletServi get onDidViewletRegister(): Event { return >this.viewletRegistry.onDidRegister; } + private _onDidVisibilityChange = this._register(new Emitter()); + get onDidVisibilityChange(): Event { return this._onDidVisibilityChange.event; } + private _onDidViewletDeregister = this._register(new Emitter()); get onDidViewletDeregister(): Event { return this._onDidViewletDeregister.event; } @@ -253,6 +256,10 @@ export class SidebarPart extends CompositePart implements IViewletServi } } + setVisible(visible: boolean): void { + this._onDidVisibilityChange.fire(visible); + } + toJSON(): object { return { type: Parts.SIDEBAR_PART -- GitLab