Skip to content

Commit 29c9daa

Browse files
authored
Fix unchecking of parent checkboxes (microsoft#184154)
* Fix unchecking of parent checkboxes Fixes microsoft#183916 * One more checkbox check
1 parent 0be89e9 commit 29c9daa

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/vs/workbench/browser/parts/views/treeView.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,7 @@ abstract class AbstractTreeView extends Disposable implements ITreeView {
629629

630630
function checkChildren(currentItem: ITreeItem) {
631631
for (const child of (currentItem.children ?? [])) {
632-
if (child.checkbox !== undefined && currentItem.checkbox !== undefined) {
632+
if ((child.checkbox !== undefined) && (currentItem.checkbox !== undefined) && (child.checkbox.isChecked !== currentItem.checkbox.isChecked)) {
633633
child.checkbox.isChecked = currentItem.checkbox.isChecked;
634634
additionalItems.push(child);
635635
checkChildren(child);
@@ -661,11 +661,11 @@ abstract class AbstractTreeView extends Disposable implements ITreeView {
661661
}
662662
}
663663
}
664-
if (someChecked && !someUnchecked) {
664+
if (someChecked && !someUnchecked && (currentItem.parent.checkbox.isChecked !== true)) {
665665
currentItem.parent.checkbox.isChecked = true;
666666
additionalItems.push(currentItem.parent);
667667
checkParents(currentItem.parent);
668-
} else if (someUnchecked && !someChecked) {
668+
} else if (someUnchecked && (currentItem.parent.checkbox.isChecked !== false)) {
669669
currentItem.parent.checkbox.isChecked = false;
670670
additionalItems.push(currentItem.parent);
671671
checkParents(currentItem.parent);

0 commit comments

Comments
 (0)