diff --git a/src/vs/workbench/parts/debug/browser/baseDebugView.ts b/src/vs/workbench/parts/debug/browser/baseDebugView.ts index 62cec581ea2a341bb960ff9b6251c1dbd78e75db..e57e1f66aff933ee08efb030deb064f63cfdcc25 100644 --- a/src/vs/workbench/parts/debug/browser/baseDebugView.ts +++ b/src/vs/workbench/parts/debug/browser/baseDebugView.ts @@ -200,6 +200,7 @@ export class BaseDebugController extends WorkbenchTreeController { super(options, configurationService); this.contributedContextMenu = menuService.createMenu(menuId, contextKeyService); + this.disposables.push(this.contributedContextMenu); } public onContextMenu(tree: ITree, element: IEnablement, event: ContextMenuEvent, focusElement = true): boolean { diff --git a/src/vs/workbench/parts/debug/electron-browser/callStackView.ts b/src/vs/workbench/parts/debug/electron-browser/callStackView.ts index 8ff6c7a88ffb654f19a2f8102dc19d918c15e090..34e37de4479a9400ccf4781433574a2c715ccddf 100644 --- a/src/vs/workbench/parts/debug/electron-browser/callStackView.ts +++ b/src/vs/workbench/parts/debug/electron-browser/callStackView.ts @@ -97,6 +97,7 @@ export class CallStackView extends TreeViewsViewletPanel { this.treeContainer = renderViewTree(container); const actionProvider = new CallStackActionProvider(this.debugService, this.keybindingService, this.instantiationService); const controller = this.instantiationService.createInstance(CallStackController, actionProvider, MenuId.DebugCallStackContext, {}); + this.disposables.push(controller); this.dataSource = new CallStackDataSource(); this.tree = this.instantiationService.createInstance(WorkbenchTree, this.treeContainer, { dataSource: this.dataSource, diff --git a/src/vs/workbench/parts/debug/electron-browser/repl.ts b/src/vs/workbench/parts/debug/electron-browser/repl.ts index 3315ff0af176da54a666754485641e6c2132b29f..6fe45c3e0ed550f5a07b6fafc1cb30d451df06d6 100644 --- a/src/vs/workbench/parts/debug/electron-browser/repl.ts +++ b/src/vs/workbench/parts/debug/electron-browser/repl.ts @@ -283,6 +283,7 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati this.renderer = this.instantiationService.createInstance(ReplExpressionsRenderer); const controller = this.instantiationService.createInstance(ReplExpressionsController, new ReplExpressionsActionProvider(this.clearReplAction, this.replInput), MenuId.DebugConsoleContext, { openMode: OpenMode.SINGLE_CLICK, clickBehavior: ClickBehavior.ON_MOUSE_UP /* do not change, to preserve focus behaviour in input field */ }); + this.toDispose.push(controller); controller.toFocusOnClick = this.replInput; this.tree = this.instantiationService.createInstance(WorkbenchTree, this.treeContainer, { diff --git a/src/vs/workbench/parts/debug/electron-browser/variablesView.ts b/src/vs/workbench/parts/debug/electron-browser/variablesView.ts index ca53ecfe36625be8ab1aa25fc490322d6d19833b..c676be3a3865aecb682ea7a35da878d56e42d32d 100644 --- a/src/vs/workbench/parts/debug/electron-browser/variablesView.ts +++ b/src/vs/workbench/parts/debug/electron-browser/variablesView.ts @@ -79,12 +79,14 @@ export class VariablesView extends TreeViewsViewletPanel { public renderBody(container: HTMLElement): void { dom.addClass(container, 'debug-variables'); this.treeContainer = renderViewTree(container); + const controller = this.instantiationService.createInstance(VariablesController, new VariablesActionProvider(this.debugService, this.keybindingService), MenuId.DebugVariablesContext, { openMode: OpenMode.SINGLE_CLICK, clickBehavior: ClickBehavior.ON_MOUSE_UP }); + this.disposables.push(controller); this.tree = this.instantiationService.createInstance(WorkbenchTree, this.treeContainer, { dataSource: new VariablesDataSource(), renderer: this.instantiationService.createInstance(VariablesRenderer), accessibilityProvider: new VariablesAccessibilityProvider(), - controller: this.instantiationService.createInstance(VariablesController, new VariablesActionProvider(this.debugService, this.keybindingService), MenuId.DebugVariablesContext, { openMode: OpenMode.SINGLE_CLICK, clickBehavior: ClickBehavior.ON_MOUSE_UP }) + controller }, { ariaLabel: nls.localize('variablesAriaTreeLabel', "Debug Variables"), twistiePixels diff --git a/src/vs/workbench/parts/debug/electron-browser/watchExpressionsView.ts b/src/vs/workbench/parts/debug/electron-browser/watchExpressionsView.ts index 353df62e9b5248ebb419f4d57680f758ceee11b9..1f99190a4775b9bb30c4e05adae6406d7ba3b29c 100644 --- a/src/vs/workbench/parts/debug/electron-browser/watchExpressionsView.ts +++ b/src/vs/workbench/parts/debug/electron-browser/watchExpressionsView.ts @@ -59,11 +59,13 @@ export class WatchExpressionsView extends TreeViewsViewletPanel { this.treeContainer = renderViewTree(container); const actionProvider = new WatchExpressionsActionProvider(this.debugService, this.keybindingService); + const controller = this.instantiationService.createInstance(WatchExpressionsController, actionProvider, MenuId.DebugWatchContext, { clickBehavior: ClickBehavior.ON_MOUSE_UP /* do not change to not break DND */, openMode: OpenMode.SINGLE_CLICK }); + this.disposables.push(controller); this.tree = this.instantiationService.createInstance(WorkbenchTree, this.treeContainer, { dataSource: new WatchExpressionsDataSource(this.debugService), renderer: this.instantiationService.createInstance(WatchExpressionsRenderer), accessibilityProvider: new WatchExpressionsAccessibilityProvider(), - controller: this.instantiationService.createInstance(WatchExpressionsController, actionProvider, MenuId.DebugWatchContext, { clickBehavior: ClickBehavior.ON_MOUSE_UP /* do not change to not break DND */, openMode: OpenMode.SINGLE_CLICK }), + controller, dnd: new WatchExpressionsDragAndDrop(this.debugService) }, { ariaLabel: nls.localize({ comment: ['Debug is a noun in this context, not a verb.'], key: 'watchAriaTreeLabel' }, "Debug Watch Expressions"),