@@ -157,7 +157,7 @@ public Rect Render(Rect containingRect, Rect rect, Vector2 scroll, Action<TNode>
157
157
public void Focus ( )
158
158
{
159
159
bool selectionChanged = false ;
160
- if ( Event . current . type == EventType . KeyDown )
160
+ if ( IsSelectable && Event . current . type == EventType . KeyDown )
161
161
{
162
162
int directionY = Event . current . keyCode == KeyCode . UpArrow ? - 1 : Event . current . keyCode == KeyCode . DownArrow ? 1 : 0 ;
163
163
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>
191
191
Event . current . Use ( ) ;
192
192
GUIUtility . keyboardControl = controlId ;
193
193
194
- SelectedNode = currentNode ;
194
+ if ( IsSelectable )
195
+ {
196
+ SelectedNode = currentNode ;
197
+ }
198
+
195
199
requiresRepaint = true ;
196
200
var clickCount = Event . current . clickCount ;
197
201
var mouseButton = Event . current . button ;
@@ -212,7 +216,7 @@ private bool HandleInput(Rect rect, TNode currentNode, int index, Action<TNode>
212
216
}
213
217
214
218
// 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 )
216
220
{
217
221
int directionY = Event . current . keyCode == KeyCode . UpArrow ? - 1 : Event . current . keyCode == KeyCode . DownArrow ? 1 : 0 ;
218
222
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>
529
533
[ SerializeField ] public string title = string . Empty ;
530
534
[ SerializeField ] public string pathSeparator = "/" ;
531
535
[ SerializeField ] public bool displayRootNode = true ;
536
+ [ SerializeField ] public bool isSelectable = true ;
532
537
[ SerializeField ] public bool isCheckable = false ;
533
538
[ SerializeField ] private List < TreeNode > nodes = new List < TreeNode > ( ) ;
534
539
[ SerializeField ] private TreeNode selectedNode = null ;
@@ -551,6 +556,12 @@ public override bool IsCheckable
551
556
set { isCheckable = value ; }
552
557
}
553
558
559
+ public override bool IsSelectable
560
+ {
561
+ get { return isSelectable ; }
562
+ set { isSelectable = value ; }
563
+ }
564
+
554
565
public override string PathSeparator
555
566
{
556
567
get { return pathSeparator ; }
0 commit comments