@@ -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