From 7b2d02766c03111fd401e309c3c4455aed449822 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Mon, 1 Apr 2024 14:11:08 -0700 Subject: [PATCH] use disposableStore --- .../workbench/contrib/terminal/browser/terminalEditor.ts | 8 ++++++-- src/vs/workbench/contrib/terminal/browser/terminalView.ts | 8 +++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalEditor.ts b/src/vs/workbench/contrib/terminal/browser/terminalEditor.ts index 2ada12ead31..9bb46d5f19f 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalEditor.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalEditor.ts @@ -30,6 +30,7 @@ import { openContextMenu } from 'vs/workbench/contrib/terminal/browser/terminalC import { ACTIVE_GROUP } from 'vs/workbench/services/editor/common/editorService'; import { IWorkbenchLayoutService, Parts } from 'vs/workbench/services/layout/browser/layoutService'; import { IBaseActionViewItemOptions } from 'vs/base/browser/ui/actionbar/actionViewItems'; +import { DisposableStore } from 'vs/base/common/lifecycle'; export class TerminalEditor extends EditorPane { @@ -46,6 +47,8 @@ export class TerminalEditor extends EditorPane { private _cancelContextMenu: boolean = false; + private _disposableStore = this._register(new DisposableStore()); + constructor( group: IEditorGroup, @ITelemetryService telemetryService: ITelemetryService, @@ -224,10 +227,11 @@ export class TerminalEditor extends EditorPane { * Actions might be of type Action (disposable) or Separator or SubmenuAction, which don't extend Disposable */ private _registerDisposableActions(dropdownAction: IAction, dropdownMenuActions: IAction[]): void { + this._disposableStore.clear(); if (dropdownAction instanceof Action) { - this._register(dropdownAction); + this._disposableStore.add(dropdownAction); } - dropdownMenuActions.filter(a => a instanceof Action).forEach(a => this._register(a)); + dropdownMenuActions.filter(a => a instanceof Action).forEach(a => this._disposableStore.add(a)); } private _getDefaultProfileName(): string { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalView.ts b/src/vs/workbench/contrib/terminal/browser/terminalView.ts index 3792bac9953..7dda01de149 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalView.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalView.ts @@ -33,7 +33,7 @@ import { renderLabelWithIcons } from 'vs/base/browser/ui/iconLabel/iconLabels'; import { getColorForSeverity } from 'vs/workbench/contrib/terminal/browser/terminalStatusList'; import { createAndFillInContextMenuActions, MenuEntryActionViewItem } from 'vs/platform/actions/browser/menuEntryActionViewItem'; import { DropdownWithPrimaryActionViewItem } from 'vs/platform/actions/browser/dropdownWithPrimaryActionViewItem'; -import { dispose, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; +import { DisposableStore, dispose, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; import { ColorScheme } from 'vs/platform/theme/common/theme'; import { getColorClass, getUriClasses } from 'vs/workbench/contrib/terminal/browser/terminalIcon'; @@ -58,6 +58,7 @@ export class TerminalViewPane extends ViewPane { private readonly _dropdownMenu: IMenu; private readonly _singleTabMenu: IMenu; private _viewShowing: IContextKey; + private _disposableStore = this._register(new DisposableStore()); constructor( options: IViewPaneOptions, @@ -287,10 +288,11 @@ export class TerminalViewPane extends ViewPane { * Actions might be of type Action (disposable) or Separator or SubmenuAction, which don't extend Disposable */ private _registerDisposableActions(dropdownAction: IAction, dropdownMenuActions: IAction[]): void { + this._disposableStore.clear(); if (dropdownAction instanceof Action) { - this._register(dropdownAction); + this._disposableStore.add(dropdownAction); } - dropdownMenuActions.filter(a => a instanceof Action).forEach(a => this._register(a)); + dropdownMenuActions.filter(a => a instanceof Action).forEach(a => this._disposableStore.add(a)); } private _getDefaultProfileName(): string {