diff --git a/src/vs/workbench/browser/parts/views/panelViewlet.ts b/src/vs/workbench/browser/parts/views/panelViewlet.ts index e7d8a379b9b3e5a74491ca883cbef7d3d95a2cef..79e33335a086303f00f760647aabf101afaab02e 100644 --- a/src/vs/workbench/browser/parts/views/panelViewlet.ts +++ b/src/vs/workbench/browser/parts/views/panelViewlet.ts @@ -269,7 +269,7 @@ export class PanelViewlet extends Viewlet { return this.panelview.getPanelSize(panel); } - private updateViewHeaders(): void { + protected updateViewHeaders(): void { if (this.isSingleView()) { this.panelItems[0].panel.setExpanded(true); this.panelItems[0].panel.headerVisible = false; diff --git a/src/vs/workbench/browser/parts/views/viewsViewlet.ts b/src/vs/workbench/browser/parts/views/viewsViewlet.ts index 1ab6bf3856af4b1da0eb950ff8b17a6be8cddcda..849a00b5f4aa6b5efbb0e2afc86c726e412e82fa 100644 --- a/src/vs/workbench/browser/parts/views/viewsViewlet.ts +++ b/src/vs/workbench/browser/parts/views/viewsViewlet.ts @@ -241,12 +241,14 @@ export class ViewsViewlet extends PanelViewlet { this._register(ViewsRegistry.onViewsDeregistered(this.onViewsDeregistered, this)); this._register(this.contextKeyService.onDidChangeContext(keys => this.onContextChanged(keys))); - await this.extensionService.onReady(); - this.areExtensionsReady = true; - await this.updateViews(); - // this.onViewsUpdated(); + // Update headers after and title contributed views after available, since we read from cache in the beginning to know if the viewlet has single view or not. Ref #29609 + this.extensionService.onReady().then(() => { + this.areExtensionsReady = true; + this.updateViewHeaders(); + this.updateTitleArea(); + }); - await this.onViewsRegistered(ViewsRegistry.getViews(this.location)); + this.onViewsRegistered(ViewsRegistry.getViews(this.location)); this.focus(); } @@ -510,7 +512,7 @@ export class ViewsViewlet extends PanelViewlet { }); } - protected showHeaderInTitleArea(): boolean { + protected isSingleView(): boolean { if (!this.showHeaderInTitleWhenSingleView) { return false; } @@ -520,11 +522,8 @@ export class ViewsViewlet extends PanelViewlet { if (ViewLocation.getContributedViewLocation(this.location.id) && !this.areExtensionsReady) { // Checks in cache so that view do not jump. See #29609 let visibleViewsCount = 0; - const viewDecriptors = this.getViewDescriptorsFromRegistry(); this.viewsStates.forEach((viewState, id) => { - const viewDescriptor = viewDecriptors.filter(viewDescriptor => viewDescriptor.id === id)[0]; - const isHidden = viewState.isHidden || (viewDescriptor && !this.contextKeyService.contextMatchesRules(viewDescriptor.when)); - if (!isHidden) { + if (!viewState.isHidden) { visibleViewsCount++; } });