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

Commit 2590be4

Browse files
Being sure to seek for the first sibling
1 parent 617302c commit 2590be4

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

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

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -310,33 +310,37 @@ private void ToggleParentFoldersChecked(int idx, TreeNode node, bool isChecked)
310310

311311
for (var i = idx - 1; i > 0 && node.Level <= nodes[i].Level; i--)
312312
{
313-
if (node.Level < nodes[i].Level)
313+
var previousNode = nodes[i];
314+
if (node.Level < previousNode.Level)
314315
{
315316
continue;
316317
}
317318

318319
firstSiblingIndex = i;
319-
var siblingIsChecked = nodes[i].CheckState == CheckState.Checked;
320320

321-
if (isChecked != siblingIsChecked)
321+
if (siblingsInSameState)
322322
{
323-
siblingsInSameState = false;
324-
break;
323+
var previousNodeIsChecked = previousNode.CheckState == CheckState.Checked;
324+
325+
if (isChecked != previousNodeIsChecked)
326+
{
327+
siblingsInSameState = false;
328+
}
325329
}
326330
}
327331

328332
if (siblingsInSameState)
329333
{
330334
for (var i = idx + 1; i < nodes.Count && node.Level <= nodes[i].Level; i++)
331335
{
332-
if (node.Level < nodes[i].Level)
336+
var followingNode = nodes[i];
337+
if (node.Level < followingNode.Level)
333338
{
334339
continue;
335340
}
336341

337-
var siblingIsChecked = nodes[i].CheckState == CheckState.Checked;
338-
339-
if (isChecked != siblingIsChecked)
342+
var followingNodeIsChecked = followingNode.CheckState == CheckState.Checked;
343+
if (isChecked != followingNodeIsChecked)
340344
{
341345
siblingsInSameState = false;
342346
break;

0 commit comments

Comments
 (0)