diff --git a/src/vs/base/browser/contextmenu.ts b/src/vs/base/browser/contextmenu.ts index fc2ee03201f3776d417c87128b6e713336ff3375..2a28dace3c22bf3fe9f376e8b5fae605ef3def95 100644 --- a/src/vs/base/browser/contextmenu.ts +++ b/src/vs/base/browser/contextmenu.ts @@ -16,7 +16,7 @@ export interface IContextMenuEvent { export interface IContextMenuDelegate { getAnchor(): HTMLElement | { x: number; y: number; width?: number; height?: number; }; - getActions(): IAction[]; + getActions(): readonly IAction[]; getCheckedActionsRepresentation?(action: IAction): 'radio' | 'checkbox'; getActionViewItem?(action: IAction): IActionViewItem | undefined; getActionsContext?(event?: IContextMenuEvent): any; diff --git a/src/vs/base/browser/ui/dropdown/dropdown.ts b/src/vs/base/browser/ui/dropdown/dropdown.ts index 9abc9274c1f12e932ca1acd21e2d613cc3ee281d..ea6611aba29c3b549ddd44ff0f45ae3c94192e64 100644 --- a/src/vs/base/browser/ui/dropdown/dropdown.ts +++ b/src/vs/base/browser/ui/dropdown/dropdown.ts @@ -201,7 +201,7 @@ export class Dropdown extends BaseDropdown { } export interface IActionProvider { - getActions(): IAction[]; + getActions(): readonly IAction[]; } export interface IDropdownMenuOptions extends IBaseDropdownOptions { @@ -215,7 +215,7 @@ export interface IDropdownMenuOptions extends IBaseDropdownOptions { export class DropdownMenu extends BaseDropdown { private _contextMenuProvider: IContextMenuProvider; private _menuOptions: IMenuOptions | undefined; - private _actions: IAction[] = []; + private _actions: readonly IAction[] = []; private actionProvider?: IActionProvider; private menuClassName: string; private menuAsChild?: boolean; @@ -238,7 +238,7 @@ export class DropdownMenu extends BaseDropdown { return this._menuOptions; } - private get actions(): IAction[] { + private get actions(): readonly IAction[] { if (this.actionProvider) { return this.actionProvider.getActions(); } @@ -246,7 +246,7 @@ export class DropdownMenu extends BaseDropdown { return this._actions; } - private set actions(actions: IAction[]) { + private set actions(actions: readonly IAction[]) { this._actions = actions; } diff --git a/src/vs/platform/actions/browser/menuEntryActionViewItem.ts b/src/vs/platform/actions/browser/menuEntryActionViewItem.ts index 0250cc10e375709ef21bc4fb3858ac0486084306..aafc56e63cbf2eea446d4c595170968677791495 100644 --- a/src/vs/platform/actions/browser/menuEntryActionViewItem.ts +++ b/src/vs/platform/actions/browser/menuEntryActionViewItem.ts @@ -206,7 +206,7 @@ export class SubmenuEntryActionViewItem extends DropdownMenuActionViewItem { action: SubmenuItemAction, @IContextMenuService contextMenuService: IContextMenuService ) { - super(action, action.actions, contextMenuService, { + super(action, { getActions: () => action.actions }, contextMenuService, { menuAsChild: true, classNames: ThemeIcon.isThemeIcon(action.item.icon) ? ThemeIcon.asClassName(action.item.icon) : undefined, });