Fixed checking radio button from code.

This commit is contained in:
and3md 2017-03-22 20:11:47 +01:00
parent 23ff14f8e8
commit cd1cc7c1f6
1 changed files with 21 additions and 3 deletions

View File

@ -485,6 +485,8 @@ class RadioButton : ImageTextButton {
checkable = true;
}
private bool blockUnchecking = false;
void uncheckSiblings() {
Widget p = parent;
if (!p)
@ -494,8 +496,17 @@ class RadioButton : ImageTextButton {
if (child is this)
continue;
RadioButton rb = cast(RadioButton)child;
if (rb)
rb.checked = false;
if (rb) {
rb.blockUnchecking = true;
try
{
rb.checked = false;
}
finally
{
rb.blockUnchecking = false;
}
}
}
}
@ -506,7 +517,14 @@ class RadioButton : ImageTextButton {
return super.handleClick();
}
override protected void handleCheckChange(bool checked) {
if (!blockUnchecking)
uncheckSiblings();
invalidate();
checkChange(this, checked);
}
}
/// Text only button