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 {
|
ToggleButton button {
|
||||||
accessible-role: none;
|
accessible-role: none;
|
||||||
toggled => $button_toggled_cb() swapped;
|
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 [
|
styles [
|
||||||
"flat",
|
"flat",
|
||||||
|
|||||||
@@ -252,19 +252,6 @@ menu_deactivate_cb (GcalMultiChoice *self)
|
|||||||
return TRUE;
|
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
|
* GObject overrides
|
||||||
*/
|
*/
|
||||||
@@ -393,13 +380,18 @@ static void
|
|||||||
gcal_multi_choice_state_flags_changed (GtkWidget *widget,
|
gcal_multi_choice_state_flags_changed (GtkWidget *widget,
|
||||||
GtkStateFlags previous_state_flags)
|
GtkStateFlags previous_state_flags)
|
||||||
{
|
{
|
||||||
GcalMultiChoice *self = GCAL_MULTI_CHOICE (widget);
|
GcalMultiChoice *self;
|
||||||
GtkStateFlags state_flags;
|
GtkStateFlags button_state_flags;
|
||||||
GtkWidget *popover;
|
GtkWidget *popover;
|
||||||
|
|
||||||
state_flags = gtk_widget_get_state_flags (widget);
|
g_assert (GCAL_IS_MULTI_CHOICE (widget));
|
||||||
if (state_flags & GTK_STATE_FLAG_FOCUSED)
|
|
||||||
gtk_widget_set_state_flags (widget, GTK_STATE_FLAG_FOCUS_VISIBLE, FALSE);
|
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))
|
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, label2);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalMultiChoice, popover_bin);
|
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_toggled_cb);
|
||||||
gtk_widget_class_bind_template_callback (widget_class, button_state_flags_changed_cb);
|
|
||||||
|
|
||||||
gtk_widget_class_set_css_name (widget_class, "navigator");
|
gtk_widget_class_set_css_name (widget_class, "navigator");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user