From 95045cb7ed1f88b04008709aa46f6aecbce5a599 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Thu, 21 Feb 2019 17:28:33 +0100 Subject: [PATCH] fixes #65585 --- src/vs/base/browser/ui/splitview/panelview.ts | 28 +++++++++++-------- .../files/browser/views/openEditorsView.ts | 11 -------- 2 files changed, 16 insertions(+), 23 deletions(-) diff --git a/src/vs/base/browser/ui/splitview/panelview.ts b/src/vs/base/browser/ui/splitview/panelview.ts index bc375e34a37..8653ffd2cd2 100644 --- a/src/vs/base/browser/ui/splitview/panelview.ts +++ b/src/vs/base/browser/ui/splitview/panelview.ts @@ -42,9 +42,10 @@ export abstract class Panel implements IView { private static readonly HEADER_SIZE = 22; readonly element: HTMLElement; + private header: HTMLElement; + private body: HTMLElement; protected _expanded: boolean; - protected disposables: IDisposable[] = []; private expandedSize: number | undefined = undefined; private _headerVisible = true; @@ -52,12 +53,13 @@ export abstract class Panel implements IView { private _maximumBodySize: number; private ariaHeaderLabel: string; private styles: IPanelStyles = {}; - - private header: HTMLElement; + private animationTimer: number | null = null; private _onDidChange = new Emitter(); readonly onDidChange: Event = this._onDidChange.event; + protected disposables: IDisposable[] = []; + get draggableElement(): HTMLElement { return this.header; } @@ -133,6 +135,15 @@ export abstract class Panel implements IView { this.updateHeader(); this._onDidChange.fire(expanded ? this.expandedSize : undefined); + if (expanded) { + clearTimeout(this.animationTimer); + append(this.element, this.body); + } else { + this.animationTimer = window.setTimeout(() => { + this.body.remove(); + }, 200); + } + return true; } @@ -179,15 +190,8 @@ export abstract class Panel implements IView { domEvent(this.header, 'click') (() => this.setExpanded(!this.isExpanded()), null, this.disposables); - // TODO@Joao move this down to panelview - // onHeaderKeyDown.filter(e => e.keyCode === KeyCode.UpArrow) - // .event(focusPrevious, this, this.disposables); - - // onHeaderKeyDown.filter(e => e.keyCode === KeyCode.DownArrow) - // .event(focusNext, this, this.disposables); - - const body = append(this.element, $('.panel-body')); - this.renderBody(body); + this.body = append(this.element, $('.panel-body')); + this.renderBody(this.body); } layout(height: number): void { diff --git a/src/vs/workbench/contrib/files/browser/views/openEditorsView.ts b/src/vs/workbench/contrib/files/browser/views/openEditorsView.ts index e2aba5cbff6..b2c4a60026b 100644 --- a/src/vs/workbench/contrib/files/browser/views/openEditorsView.ts +++ b/src/vs/workbench/contrib/files/browser/views/openEditorsView.ts @@ -280,7 +280,6 @@ export class OpenEditorsView extends ViewletPanel { this.listRefreshScheduler.schedule(0); this.disposables.push(this.onDidChangeBodyVisibility(visible => { - this.updateListVisibility(visible); if (visible && this.needsRefresh) { this.listRefreshScheduler.schedule(0); } @@ -310,16 +309,6 @@ export class OpenEditorsView extends ViewletPanel { } } - private updateListVisibility(isVisible: boolean): void { - if (this.list) { - if (isVisible) { - dom.show(this.list.getHTMLElement()); - } else { - dom.hide(this.list.getHTMLElement()); // make sure the list goes out of the tabindex world by hiding it - } - } - } - private get showGroups(): boolean { return this.editorGroupService.groups.length > 1; } -- GitLab