diff options
author | Alex Ross <alros@microsoft.com> | 2022-07-28 16:26:16 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-28 16:26:16 +0300 |
commit | 1fdade8d07d9c8b0aca3923fc7bb52df4c104264 (patch) | |
tree | 55a9e0cead103374bb8e058e4a133006a92ffe78 | |
parent | e65cf31952eb7d7a925b12da13726ea832c56b34 (diff) |
TreeView reveal fails to scroll to item when focusing and a different selection exists (#156572)
Fixes #152803
-rw-r--r-- | src/vs/workbench/browser/parts/views/treeView.ts | 10 |
1 files changed, 5 insertions, 5 deletions
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]); } } |