summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-05-21 02:06:58 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-05-21 02:06:58 +0000
commitf5bd9f721cb9ea39393d3541e9ab60b14d26076c (patch)
tree5dd1edb0d8f74cdfa27a3a436c38e6b58f6b9c3d
parent345edb8a89d424946b5a7308548f5190e89848c0 (diff)
parentfb6c6c85bf73efa78e60d61546d3df7adcf04f5a (diff)
downloadgtk+-f5bd9f721cb9ea39393d3541e9ab60b14d26076c.tar.gz
Merge branch 'wip/exalm/check-activate' into 'master'
checkbutton: Don't allow to uncheck radios by activating them See merge request GNOME/gtk!3569
-rw-r--r--gtk/gtkcheckbutton.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gtk/gtkcheckbutton.c b/gtk/gtkcheckbutton.c
index e9a30a1ce3..bc4a4c5d04 100644
--- a/gtk/gtkcheckbutton.c
+++ b/gtk/gtkcheckbutton.c
@@ -475,10 +475,14 @@ gtk_check_button_focus (GtkWidget *widget,
}
static void
-gtk_check_button_real_activate (GtkCheckButton *check_button)
+gtk_check_button_real_activate (GtkCheckButton *self)
{
- gtk_check_button_set_active (check_button,
- !gtk_check_button_get_active (check_button));
+ GtkCheckButtonPrivate *priv = gtk_check_button_get_instance_private (self);
+
+ if (priv->active && (priv->group_prev || priv->group_next))
+ return;
+
+ gtk_check_button_set_active (self, !gtk_check_button_get_active (self));
}
static void