Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit ba4f7f7

Browse files
Remembering the last selected node when reloading the tree
1 parent 8a1cd93 commit ba4f7f7

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/TreeControl.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ public void Load(IEnumerable<ITreeData> data, string title)
5656
{
5757
var collapsedFoldersEnumerable = folders.Where(pair => pair.Value.IsCollapsed).Select(pair => pair.Key);
5858
var collapsedFolders = new HashSet<string>(collapsedFoldersEnumerable);
59+
string selectedNodeName = null;
60+
if (SelectedNode != null)
61+
{
62+
selectedNodeName = SelectedNode.Name;
63+
SelectedNode = null;
64+
}
5965

6066
folders.Clear();
6167
nodes.Clear();
@@ -94,6 +100,11 @@ public void Load(IEnumerable<ITreeData> data, string title)
94100
IsFolder = isFolder
95101
};
96102

103+
if (selectedNodeName != null && name == selectedNodeName)
104+
{
105+
SelectedNode = node;
106+
}
107+
97108
if (node.IsActive)
98109
{
99110
activeNode = node;

0 commit comments

Comments
 (0)