[gtk: 2/3] checkbutton: Activate when moving focus
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk: 2/3] checkbutton: Activate when moving focus
- Date: Fri, 30 Jul 2021 23:39:18 +0000 (UTC)
commit 1728aa581c19dc70e05aae59bf9b82ac87ed7c74
Author: Florian Müllner <fmuellner gnome org>
Date: Fri Jul 30 20:18:36 2021 +0200
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.
gtk/gtkcheckbutton.c | 10 ++++------
1 file 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;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]