toolitemgroup: Fix initial state
GtkToolItemGroup starts out as non-collapsed, make the CSS node state reflect that.
This commit is contained in:
@ -380,6 +380,21 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|||||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
update_arrow_state (GtkToolItemGroup *group)
|
||||||
|
{
|
||||||
|
GtkToolItemGroupPrivate *priv = group->priv;
|
||||||
|
GtkStateFlags state;
|
||||||
|
|
||||||
|
state = gtk_widget_get_state_flags (GTK_WIDGET (group));
|
||||||
|
|
||||||
|
if (priv->collapsed)
|
||||||
|
state &= ~GTK_STATE_FLAG_CHECKED;
|
||||||
|
else
|
||||||
|
state |= GTK_STATE_FLAG_CHECKED;
|
||||||
|
gtk_css_node_set_state (priv->arrow_node, state);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_tool_item_group_init (GtkToolItemGroup *group)
|
gtk_tool_item_group_init (GtkToolItemGroup *group)
|
||||||
{
|
{
|
||||||
@ -394,6 +409,7 @@ gtk_tool_item_group_init (GtkToolItemGroup *group)
|
|||||||
priv->children = NULL;
|
priv->children = NULL;
|
||||||
priv->header_spacing = DEFAULT_HEADER_SPACING;
|
priv->header_spacing = DEFAULT_HEADER_SPACING;
|
||||||
priv->expander_size = DEFAULT_EXPANDER_SIZE;
|
priv->expander_size = DEFAULT_EXPANDER_SIZE;
|
||||||
|
priv->collapsed = DEFAULT_COLLAPSED;
|
||||||
|
|
||||||
priv->label_widget = gtk_label_new (NULL);
|
priv->label_widget = gtk_label_new (NULL);
|
||||||
gtk_widget_set_halign (priv->label_widget, GTK_ALIGN_START);
|
gtk_widget_set_halign (priv->label_widget, GTK_ALIGN_START);
|
||||||
@ -426,6 +442,8 @@ G_GNUC_END_IGNORE_DEPRECATIONS
|
|||||||
gtk_css_node_set_parent (priv->arrow_node, widget_node);
|
gtk_css_node_set_parent (priv->arrow_node, widget_node);
|
||||||
gtk_css_node_set_state (priv->arrow_node, gtk_css_node_get_state (widget_node));
|
gtk_css_node_set_state (priv->arrow_node, gtk_css_node_get_state (widget_node));
|
||||||
g_object_unref (priv->arrow_node);
|
g_object_unref (priv->arrow_node);
|
||||||
|
|
||||||
|
update_arrow_state (group);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1287,22 +1305,6 @@ gtk_tool_item_group_style_updated (GtkWidget *widget)
|
|||||||
GTK_WIDGET_CLASS (gtk_tool_item_group_parent_class)->style_updated (widget);
|
GTK_WIDGET_CLASS (gtk_tool_item_group_parent_class)->style_updated (widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
update_arrow_state (GtkToolItemGroup *group)
|
|
||||||
{
|
|
||||||
GtkToolItemGroupPrivate *priv = group->priv;
|
|
||||||
GtkStateFlags state;
|
|
||||||
|
|
||||||
state = gtk_widget_get_state_flags (GTK_WIDGET (group));
|
|
||||||
|
|
||||||
if (priv->collapsed)
|
|
||||||
state &= ~GTK_STATE_FLAG_CHECKED;
|
|
||||||
else
|
|
||||||
state |= GTK_STATE_FLAG_CHECKED;
|
|
||||||
|
|
||||||
gtk_css_node_set_state (priv->arrow_node, state);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_tool_item_group_state_flags_changed (GtkWidget *widget,
|
gtk_tool_item_group_state_flags_changed (GtkWidget *widget,
|
||||||
GtkStateFlags previous_flags)
|
GtkStateFlags previous_flags)
|
||||||
|
Reference in New Issue
Block a user