diff --git a/src/vs/platform/actions/browser/toolbar.ts b/src/vs/platform/actions/browser/toolbar.ts index c76b6eeb57a0f..cbce9d98d0ef3 100644 --- a/src/vs/platform/actions/browser/toolbar.ts +++ b/src/vs/platform/actions/browser/toolbar.ts @@ -8,6 +8,7 @@ import { IToolBarOptions, ToolBar } from 'vs/base/browser/ui/toolbar/toolbar'; import { IAction, Separator, SubmenuAction, toAction, WorkbenchActionExecutedClassification, WorkbenchActionExecutedEvent } from 'vs/base/common/actions'; import { coalesceInPlace } from 'vs/base/common/arrays'; import { BugIndicatingError } from 'vs/base/common/errors'; +import { Emitter, Event } from 'vs/base/common/event'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { localize } from 'vs/nls'; import { createAndFillInActionBarActions } from 'vs/platform/actions/browser/menuEntryActionViewItem'; @@ -283,6 +284,9 @@ export interface IMenuWorkbenchToolBarOptions extends IWorkbenchToolBarOptions { */ export class MenuWorkbenchToolBar extends WorkbenchToolBar { + private readonly _onDidChangeMenuItems = this._store.add(new Emitter()); + readonly onDidChangeMenuItems: Event = this._onDidChangeMenuItems.event; + constructor( container: HTMLElement, menuId: MenuId, @@ -309,7 +313,10 @@ export class MenuWorkbenchToolBar extends WorkbenchToolBar { super.setActions(primary, secondary); }; - this._store.add(menu.onDidChange(updateToolbar)); + this._store.add(menu.onDidChange(() => { + updateToolbar(); + this._onDidChangeMenuItems.fire(this); + })); updateToolbar(); } diff --git a/src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditorWidget.ts b/src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditorWidget.ts index c83e3b23ede54..148a62f09a863 100644 --- a/src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditorWidget.ts +++ b/src/vs/workbench/contrib/interactiveEditor/browser/interactiveEditorWidget.ts @@ -290,6 +290,7 @@ export class InteractiveEditorWidget { } }; const statusToolbar = this._instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.statusToolbar, MENU_INTERACTIVE_EDITOR_WIDGET_STATUS, workbenchToolbarOptions); + this._store.add(statusToolbar.onDidChangeMenuItems(() => this._onDidChangeHeight.fire())); this._store.add(statusToolbar); // preview editors @@ -301,6 +302,7 @@ export class InteractiveEditorWidget { this._elements.message.tabIndex = 0; this._elements.statusLabel.tabIndex = 0; const markdownMessageToolbar = this._instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.messageActions, MENU_INTERACTIVE_EDITOR_WIDGET_MARKDOWN_MESSAGE, workbenchToolbarOptions); + this._store.add(markdownMessageToolbar.onDidChangeMenuItems(() => this._onDidChangeHeight.fire())); this._store.add(markdownMessageToolbar); }