From 0287d832ff4a1ebe2a5b02ab58b933a2bfdf8ed4 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 1 Dec 2017 16:05:32 +0100 Subject: [PATCH] get toolbar width only once fixes #39185 --- src/vs/workbench/browser/parts/panel/panelPart.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/parts/panel/panelPart.ts b/src/vs/workbench/browser/parts/panel/panelPart.ts index d48670c3131..d63805663f3 100644 --- a/src/vs/workbench/browser/parts/panel/panelPart.ts +++ b/src/vs/workbench/browser/parts/panel/panelPart.ts @@ -31,6 +31,7 @@ import { ToggleCompositePinnedAction } from 'vs/workbench/browser/parts/composit import { StandardMouseEvent } from 'vs/base/browser/mouseEvent'; import { dispose, IDisposable } from 'vs/base/common/lifecycle'; import { IBadge } from 'vs/workbench/services/activity/common/activity'; +import { memoize } from 'vs/base/common/decorators'; export class PanelPart extends CompositePart implements IPanelService { @@ -234,12 +235,17 @@ export class PanelPart extends CompositePart implements IPanelService { let availableWidth = this.dimension.width - 8; // take padding into account if (this.toolBar) { // adjust height for global actions showing - availableWidth = Math.max(PanelPart.MIN_COMPOSITE_BAR_WIDTH, availableWidth - this.toolBar.getContainer().getHTMLElement().offsetWidth); + availableWidth = Math.max(PanelPart.MIN_COMPOSITE_BAR_WIDTH, availableWidth - this.toolbarWidth); } this.compositeBar.layout(new Dimension(availableWidth, this.dimension.height)); } } + @memoize + private get toolbarWidth(): number { + return this.toolBar.getContainer().getHTMLElement().offsetWidth; + } + public shutdown(): void { // Persist Hidden State this.compositeBar.store();