summaryrefslogtreecommitdiff
path: root/gtk/gtkcheckbutton.c
diff options
context:
space:
mode:
authorFlorian Müllner <fmuellner@gnome.org>2021-07-30 20:18:36 +0200
committerFlorian Müllner <fmuellner@gnome.org>2021-07-30 20:34:24 +0200
commit1728aa581c19dc70e05aae59bf9b82ac87ed7c74 (patch)
tree044bf65d9ddc27d2cddba72554b2d008ccfa1d2b /gtk/gtkcheckbutton.c
parentc50475de34f66a97ea8fb57c722d7290b9f60d44 (diff)
downloadgtk+-1728aa581c19dc70e05aae59bf9b82ac87ed7c74.tar.gz
checkbutton: Activate when moving focus
Currently we update the :active property on both the previous and new focus button. That "visually activate" the button and will emit ::toggled, but if the button is associated with an action, the action state won't change. Fix that by activating the new focus instead of explicitly fiddling with the :active property.
Diffstat (limited to 'gtk/gtkcheckbutton.c')
-rw-r--r--gtk/gtkcheckbutton.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/gtk/gtkcheckbutton.c b/gtk/gtkcheckbutton.c
index 9471f6d3c6..4357a10010 100644
--- a/gtk/gtkcheckbutton.c
+++ b/gtk/gtkcheckbutton.c
@@ -420,9 +420,6 @@ gtk_check_button_focus (GtkWidget *widget,
GtkDirectionType direction)
{
GtkCheckButton *self = GTK_CHECK_BUTTON (widget);
- GtkCheckButton *active_button;
-
- active_button = get_group_active_button (self);
if (gtk_widget_is_focus (widget))
{
@@ -471,9 +468,7 @@ gtk_check_button_focus (GtkWidget *widget,
if (new_focus)
{
gtk_widget_grab_focus (new_focus);
- gtk_check_button_set_active (GTK_CHECK_BUTTON (new_focus), TRUE);
- if (active_button && active_button != (GtkCheckButton *)new_focus)
- gtk_check_button_set_active (GTK_CHECK_BUTTON (active_button), FALSE);
+ gtk_widget_activate (new_focus);
}
g_ptr_array_free (child_array, TRUE);
@@ -482,6 +477,9 @@ gtk_check_button_focus (GtkWidget *widget,
}
else
{
+ GtkCheckButton *active_button;
+
+ active_button = get_group_active_button (self);
if (active_button && active_button != self)
return FALSE;