diff --git a/src/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration.ts b/src/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration.ts index 0f842a00418..d3a53876dc8 100644 --- a/src/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration.ts +++ b/src/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration.ts @@ -383,10 +383,10 @@ export class McpAddConfigurationCommand { }); const loadingAction = await new Promise<{ id: LoadAction; helpUri?: URI } | undefined>(resolve => { - loadingQuickPick.onDidAccept(() => resolve(loadingQuickPick.selectedItems[0])); - loadingQuickPick.onDidHide(() => resolve(undefined)); + loadingQuickPickStore.add(loadingQuickPick.onDidAccept(() => resolve(loadingQuickPick.selectedItems[0]))); + loadingQuickPickStore.add(loadingQuickPick.onDidHide(() => resolve(undefined))); loadingQuickPick.show(); - }).finally(() => loadingQuickPick.dispose()); + }).finally(() => loadingQuickPickStore.dispose()); switch (loadingAction?.id) { case LoadAction.Retry: diff --git a/src/vs/workbench/contrib/mcp/common/mcpRegistry.ts b/src/vs/workbench/contrib/mcp/common/mcpRegistry.ts index 084d2f5126c..f650edaec32 100644 --- a/src/vs/workbench/contrib/mcp/common/mcpRegistry.ts +++ b/src/vs/workbench/contrib/mcp/common/mcpRegistry.ts @@ -408,13 +408,13 @@ export class McpRegistry extends Disposable implements IMcpRegistry { })); return new Promise(resolve => { - picker.onDidAccept(() => { + store.add(picker.onDidAccept(() => { resolve(picker.selectedItems.map(item => item.definitonId)); picker.hide(); - }); - picker.onDidHide(() => { + })); + store.add(picker.onDidHide(() => { resolve(undefined); - }); + })); picker.show(); }).finally(() => store.dispose()); } diff --git a/src/vs/workbench/contrib/testing/browser/testingOutputPeek.ts b/src/vs/workbench/contrib/testing/browser/testingOutputPeek.ts index c5a6ccbe54e..f519bf0352a 100644 --- a/src/vs/workbench/contrib/testing/browser/testingOutputPeek.ts +++ b/src/vs/workbench/contrib/testing/browser/testingOutputPeek.ts @@ -482,7 +482,7 @@ export class TestingOutputPeekController extends Disposable implements IEditorCo if (!this.peek.get()) { const peek = this.instantiationService.createInstance(TestResultsPeek, this.editor); this.peek.set(peek, undefined); - peek.onDidClose(() => { + Event.once(peek.onDidClose)(() => { this.visible.set(false); this.peek.set(undefined, undefined); }); diff --git a/src/vs/workbench/contrib/testing/common/testingContentProvider.ts b/src/vs/workbench/contrib/testing/common/testingContentProvider.ts index dc5d6d8d017..4751f1847e2 100644 --- a/src/vs/workbench/contrib/testing/common/testingContentProvider.ts +++ b/src/vs/workbench/contrib/testing/common/testingContentProvider.ts @@ -78,7 +78,7 @@ export class TestingContentProvider implements IWorkbenchContribution, ITextMode dispose.dispose(); } }); - model.onWillDispose(() => dispose.dispose()); + dispose.add(model.onWillDispose(() => dispose.dispose())); return model; }