diff --git a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/BranchesView.cs b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/BranchesView.cs index 3ea3f5dcc..d71a59c8c 100644 --- a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/BranchesView.cs +++ b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/BranchesView.cs @@ -323,6 +323,9 @@ private void OnTreeGUI(Rect rect) if (node.IsFolder) return; + if(node.IsActive) + return; + SwitchBranch(node.Name); }, node => { diff --git a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/TreeControl.cs b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/TreeControl.cs index 5c668049b..5f5f505bc 100644 --- a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/TreeControl.cs +++ b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/TreeControl.cs @@ -56,6 +56,12 @@ public void Load(IEnumerable data, string title) { var collapsedFoldersEnumerable = folders.Where(pair => pair.Value.IsCollapsed).Select(pair => pair.Key); var collapsedFolders = new HashSet(collapsedFoldersEnumerable); + string selectedNodeName = null; + if (SelectedNode != null) + { + selectedNodeName = SelectedNode.Name; + SelectedNode = null; + } folders.Clear(); nodes.Clear(); @@ -94,6 +100,11 @@ public void Load(IEnumerable data, string title) IsFolder = isFolder }; + if (selectedNodeName != null && name == selectedNodeName) + { + SelectedNode = node; + } + if (node.IsActive) { activeNode = node;