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

Commit 1fc47a6

Browse files
Final focus tweaks
1 parent 664878f commit 1fc47a6

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,13 @@ public abstract class Tree<TNode, TData>: TreeBase<TNode, TData>
3737

3838
public Rect Render(Rect containingRect, Rect rect, Vector2 scroll, Action<TNode> singleClick = null, Action<TNode> doubleClick = null, Action<TNode> rightClick = null)
3939
{
40+
if (Selection.activeObject != selectionObject)
41+
{
42+
SelectedNode = null;
43+
}
44+
4045
controlId = GUIUtility.GetControlID(FocusType.Keyboard);
41-
var treeHasFocus = GUIUtility.keyboardControl == controlId && Selection.activeObject == selectionObject;
46+
var treeHasFocus = GUIUtility.keyboardControl == controlId;
4247

4348
if (!Nodes.Any())
4449
return new Rect(0f, rect.y, 0f, 0f);
@@ -78,7 +83,7 @@ public Rect Render(Rect containingRect, Rect rect, Vector2 scroll, Action<TNode>
7883
var titleDisplay = !(rect.y > endDisplay || rect.yMax < startDisplay);
7984
if (titleDisplay)
8085
{
81-
var isSelected = SelectedNode == titleNode && treeHasFocus;
86+
var isSelected = SelectedNode == titleNode;
8287
renderResult = titleNode.Render(rect, Styles.TreeIndentation, isSelected, FolderStyle, treeNodeStyle, activeTreeNodeStyle);
8388
}
8489

@@ -112,7 +117,7 @@ public Rect Render(Rect containingRect, Rect rect, Vector2 scroll, Action<TNode>
112117
var display = !(rect.y > endDisplay || rect.yMax < startDisplay);
113118
if (display)
114119
{
115-
var isSelected = SelectedNode == node && treeHasFocus;
120+
var isSelected = SelectedNode == node;
116121
renderResult = node.Render(rect, Styles.TreeIndentation, isSelected, FolderStyle, treeNodeStyle, activeTreeNodeStyle);
117122
}
118123

0 commit comments

Comments
 (0)