From 5aa71ebddd41eee16f9ed78c0204a8c5ef485110 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Tue, 2 Apr 2024 11:37:26 -0700 Subject: [PATCH] Fix leaks in terminalInstance dnd Fixes #207459 --- .../contrib/terminal/browser/terminalInstance.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index ff1338e6ff7f6..d8ccfed512500 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -1088,13 +1088,15 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { } private _initDragAndDrop(container: HTMLElement) { - const dndController = this._register(this._scopedInstantiationService.createInstance(TerminalInstanceDragAndDropController, container)); - dndController.onDropTerminal(e => this._onRequestAddInstanceToGroup.fire(e)); - dndController.onDropFile(async path => { + const store = new DisposableStore(); + const dndController = store.add(this._scopedInstantiationService.createInstance(TerminalInstanceDragAndDropController, container)); + store.add(dndController.onDropTerminal(e => this._onRequestAddInstanceToGroup.fire(e))); + store.add(dndController.onDropFile(async path => { this.focus(); await this.sendPath(path, false); - }); - this._dndObserver.value = new dom.DragAndDropObserver(container, dndController); + })); + store.add(new dom.DragAndDropObserver(container, dndController)); + this._dndObserver.value = store; } hasSelection(): boolean {