From 1fdade8d07d9c8b0aca3923fc7bb52df4c104264 Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Thu, 28 Jul 2022 15:26:16 +0200 Subject: TreeView reveal fails to scroll to item when focusing and a different selection exists (#156572) Fixes #152803 --- src/vs/workbench/browser/parts/views/treeView.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/vs') diff --git a/src/vs/workbench/browser/parts/views/treeView.ts b/src/vs/workbench/browser/parts/views/treeView.ts index 4f8aa7d5b3a..3c9b24faefd 100644 --- a/src/vs/workbench/browser/parts/views/treeView.ts +++ b/src/vs/workbench/browser/parts/views/treeView.ts @@ -496,12 +496,12 @@ abstract class AbstractTreeView extends Disposable implements ITreeView { protected abstract activate(): void; - focus(reveal: boolean = true): void { + focus(reveal: boolean = true, revealItem?: ITreeItem): void { if (this.tree && this.root.children && this.root.children.length > 0) { // Make sure the current selected element is revealed - const selectedElement = this.tree.getSelection()[0]; - if (selectedElement && reveal) { - this.tree.reveal(selectedElement, 0.5); + const element = revealItem ?? this.tree.getSelection()[0]; + if (element && reveal) { + this.tree.reveal(element, 0.5); } // Pass Focus to Viewer @@ -784,7 +784,7 @@ abstract class AbstractTreeView extends Disposable implements ITreeView { setFocus(item: ITreeItem): void { if (this.tree) { - this.focus(); + this.focus(true, item); this.tree.setFocus([item]); } } -- cgit v1.2.3