@@ -37,8 +37,13 @@ public abstract class Tree<TNode, TData>: TreeBase<TNode, TData>
37
37
38
38
public Rect Render ( Rect containingRect , Rect rect , Vector2 scroll , Action < TNode > singleClick = null , Action < TNode > doubleClick = null , Action < TNode > rightClick = null )
39
39
{
40
+ if ( Selection . activeObject != selectionObject )
41
+ {
42
+ SelectedNode = null ;
43
+ }
44
+
40
45
controlId = GUIUtility . GetControlID ( FocusType . Keyboard ) ;
41
- var treeHasFocus = GUIUtility . keyboardControl == controlId && Selection . activeObject == selectionObject ;
46
+ var treeHasFocus = GUIUtility . keyboardControl == controlId ;
42
47
43
48
if ( ! Nodes . Any ( ) )
44
49
return new Rect ( 0f , rect . y , 0f , 0f ) ;
@@ -78,7 +83,7 @@ public Rect Render(Rect containingRect, Rect rect, Vector2 scroll, Action<TNode>
78
83
var titleDisplay = ! ( rect . y > endDisplay || rect . yMax < startDisplay ) ;
79
84
if ( titleDisplay )
80
85
{
81
- var isSelected = SelectedNode == titleNode && treeHasFocus ;
86
+ var isSelected = SelectedNode == titleNode ;
82
87
renderResult = titleNode . Render ( rect , Styles . TreeIndentation , isSelected , FolderStyle , treeNodeStyle , activeTreeNodeStyle ) ;
83
88
}
84
89
@@ -112,7 +117,7 @@ public Rect Render(Rect containingRect, Rect rect, Vector2 scroll, Action<TNode>
112
117
var display = ! ( rect . y > endDisplay || rect . yMax < startDisplay ) ;
113
118
if ( display )
114
119
{
115
- var isSelected = SelectedNode == node && treeHasFocus ;
120
+ var isSelected = SelectedNode == node ;
116
121
renderResult = node . Render ( rect , Styles . TreeIndentation , isSelected , FolderStyle , treeNodeStyle , activeTreeNodeStyle ) ;
117
122
}
118
123
0 commit comments