--- a/src/gui/kernel/qactiongroup.cpp Tue Jan 26 12:42:25 2010 +0200
+++ b/src/gui/kernel/qactiongroup.cpp Tue Feb 02 00:43:10 2010 +0200
@@ -72,10 +72,16 @@
Q_Q(QActionGroup);
QAction *action = qobject_cast<QAction*>(q->sender());
Q_ASSERT_X(action != 0, "QWidgetGroup::_q_actionChanged", "internal error");
- if(exclusive && action->isChecked() && action != current) {
- if(current)
- current->setChecked(false);
- current = action;
+ if(exclusive) {
+ if (action->isChecked()) {
+ if (action != current) {
+ if(current)
+ current->setChecked(false);
+ current = action;
+ }
+ } else if (action == current) {
+ current = 0;
+ }
}
}