@@ -157,7 +157,7 @@ public Rect Render(Rect containingRect, Rect rect, Vector2 scroll, Action<TNode>
157157 public void Focus ( )
158158 {
159159 bool selectionChanged = false ;
160- if ( Event . current . type == EventType . KeyDown )
160+ if ( IsSelectable && Event . current . type == EventType . KeyDown )
161161 {
162162 int directionY = Event . current . keyCode == KeyCode . UpArrow ? - 1 : Event . current . keyCode == KeyCode . DownArrow ? 1 : 0 ;
163163 int directionX = Event . current . keyCode == KeyCode . LeftArrow ? - 1 : Event . current . keyCode == KeyCode . RightArrow ? 1 : 0 ;
@@ -191,7 +191,11 @@ private bool HandleInput(Rect rect, TNode currentNode, int index, Action<TNode>
191191 Event . current . Use ( ) ;
192192 GUIUtility . keyboardControl = controlId ;
193193
194- SelectedNode = currentNode ;
194+ if ( IsSelectable )
195+ {
196+ SelectedNode = currentNode ;
197+ }
198+
195199 requiresRepaint = true ;
196200 var clickCount = Event . current . clickCount ;
197201 var mouseButton = Event . current . button ;
@@ -212,7 +216,7 @@ private bool HandleInput(Rect rect, TNode currentNode, int index, Action<TNode>
212216 }
213217
214218 // Keyboard navigation if this child is the current selection
215- if ( GUIUtility . keyboardControl == controlId && currentNode == SelectedNode && Event . current . type == EventType . KeyDown )
219+ if ( IsSelectable && GUIUtility . keyboardControl == controlId && currentNode == SelectedNode && Event . current . type == EventType . KeyDown )
216220 {
217221 int directionY = Event . current . keyCode == KeyCode . UpArrow ? - 1 : Event . current . keyCode == KeyCode . DownArrow ? 1 : 0 ;
218222 int directionX = Event . current . keyCode == KeyCode . LeftArrow ? - 1 : Event . current . keyCode == KeyCode . RightArrow ? 1 : 0 ;
@@ -529,6 +533,7 @@ public class BranchesTree : Tree<TreeNode, GitBranchTreeData>
529533 [ SerializeField ] public string title = string . Empty ;
530534 [ SerializeField ] public string pathSeparator = "/" ;
531535 [ SerializeField ] public bool displayRootNode = true ;
536+ [ SerializeField ] public bool isSelectable = true ;
532537 [ SerializeField ] public bool isCheckable = false ;
533538 [ SerializeField ] private List < TreeNode > nodes = new List < TreeNode > ( ) ;
534539 [ SerializeField ] private TreeNode selectedNode = null ;
@@ -551,6 +556,12 @@ public override bool IsCheckable
551556 set { isCheckable = value ; }
552557 }
553558
559+ public override bool IsSelectable
560+ {
561+ get { return isSelectable ; }
562+ set { isSelectable = value ; }
563+ }
564+
554565 public override string PathSeparator
555566 {
556567 get { return pathSeparator ; }
0 commit comments