From 028ffd81b1f18b480aa049d1fae6585964b4ff47 Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Thu, 29 Aug 2019 11:15:53 +0200 Subject: [PATCH] Only pass selection in custom tree view if action is in selection Fixes #79981 --- src/vs/workbench/browser/parts/views/customView.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/parts/views/customView.ts b/src/vs/workbench/browser/parts/views/customView.ts index c90e179bb7d..3d6d4ec8af1 100644 --- a/src/vs/workbench/browser/parts/views/customView.ts +++ b/src/vs/workbench/browser/parts/views/customView.ts @@ -855,8 +855,18 @@ class MultipleSelectionActionRunner extends ActionRunner { runAction(action: IAction, context: TreeViewItemHandleArg): Promise { const selection = this.getSelectedResources(); let selectionHandleArgs: TreeViewItemHandleArg[] | undefined = undefined; + let actionInSelected: boolean = false; if (selection.length > 1) { - selectionHandleArgs = selection.map(selected => { return { $treeViewId: context.$treeViewId, $treeItemHandle: selected.handle }; }); + selectionHandleArgs = selection.map(selected => { + if (selected.handle === context.$treeItemHandle) { + actionInSelected = true; + } + return { $treeViewId: context.$treeViewId, $treeItemHandle: selected.handle }; + }); + } + + if (!actionInSelected) { + selectionHandleArgs = undefined; } return action.run(...[context, selectionHandleArgs]);