event-editor/multi-choice: Consolidate state flag changes

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/841>
This commit is contained in:
Hari Rana
2026-09-25 19:09:12 +00:00
committed by Marge Bot
parent c3d5c777ec
commit 1748014028
2 changed files with 12 additions and 20 deletions
+1 -1
View File
@@ -26,7 +26,7 @@ template $GcalMultiChoice: Widget {
ToggleButton button {
accessible-role: none;
toggled => $button_toggled_cb() swapped;
state-flags-changed => $button_state_flags_changed_cb() swapped;
state-flags-changed => $gcal_multi_choice_state_flags_changed(template);
styles [
"flat",
+11 -19
View File
@@ -252,19 +252,6 @@ menu_deactivate_cb (GcalMultiChoice *self)
return TRUE;
}
static void
button_state_flags_changed_cb (GcalMultiChoice *self,
GtkStateFlags previous_state_flags)
{
GtkStateFlags state_flags;
g_assert (GCAL_IS_MULTI_CHOICE (self));
state_flags = gtk_widget_get_state_flags (self->button);
gtk_widget_set_state_flags (GTK_WIDGET (self), state_flags, TRUE);
}
/*
* GObject overrides
*/
@@ -393,13 +380,18 @@ static void
gcal_multi_choice_state_flags_changed (GtkWidget *widget,
GtkStateFlags previous_state_flags)
{
GcalMultiChoice *self = GCAL_MULTI_CHOICE (widget);
GtkStateFlags state_flags;
GcalMultiChoice *self;
GtkStateFlags button_state_flags;
GtkWidget *popover;
state_flags = gtk_widget_get_state_flags (widget);
if (state_flags & GTK_STATE_FLAG_FOCUSED)
gtk_widget_set_state_flags (widget, GTK_STATE_FLAG_FOCUS_VISIBLE, FALSE);
g_assert (GCAL_IS_MULTI_CHOICE (widget));
self = GCAL_MULTI_CHOICE (widget);
button_state_flags = gtk_widget_get_state_flags (self->button);
if (button_state_flags & GTK_STATE_FLAG_FOCUSED)
button_state_flags |= GTK_STATE_FLAG_FOCUS_VISIBLE;
gtk_widget_set_state_flags (GTK_WIDGET (self), button_state_flags, TRUE);
if (!gtk_widget_is_sensitive (widget))
{
@@ -541,8 +533,8 @@ gcal_multi_choice_class_init (GcalMultiChoiceClass *class)
gtk_widget_class_bind_template_child (widget_class, GcalMultiChoice, label2);
gtk_widget_class_bind_template_child (widget_class, GcalMultiChoice, popover_bin);
gtk_widget_class_bind_template_callback (widget_class, gcal_multi_choice_state_flags_changed);
gtk_widget_class_bind_template_callback (widget_class, button_toggled_cb);
gtk_widget_class_bind_template_callback (widget_class, button_state_flags_changed_cb);
gtk_widget_class_set_css_name (widget_class, "navigator");