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:
@@ -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",
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user