static GtkCssStyle *
build_properties (GtkStyleContext *context,
+ GtkCssNode *cssnode,
const GtkCssNodeDeclaration *decl,
- gboolean is_root,
- GtkCssStyle *parent)
+ gboolean is_root)
{
GtkStyleContextPrivate *priv;
GtkCssMatcher matcher;
GtkWidgetPath *path;
+ GtkCssStyle *parent;
GtkCssStyle *style;
priv = context->priv;
+ parent = gtk_css_node_get_parent_style (context, cssnode);
style = lookup_in_global_parent_cache (context, parent, decl);
if (style)
if (values)
return values;
- values = build_properties (context,
- gtk_css_node_get_declaration (cssnode),
- !gtk_style_context_is_saved (context),
- gtk_css_node_get_parent_style (context, cssnode));
+ values = build_properties (context, cssnode, gtk_css_node_get_declaration (cssnode), FALSE);
gtk_css_node_set_style (cssnode, values);
g_object_unref (values);
decl = gtk_css_node_dup_declaration (context->priv->cssnode);
gtk_css_node_declaration_set_state (&decl, state);
values = build_properties (context,
+ context->priv->cssnode,
decl,
- !gtk_style_context_is_saved (context),
- gtk_css_node_get_parent_style (context, context->priv->cssnode));
+ !gtk_style_context_is_saved (context));
gtk_css_node_declaration_unref (decl);
return values;
{
GtkCssStyle *style, *static_style;
- static_style = build_properties (context, gtk_css_node_get_declaration (cssnode), TRUE, gtk_css_node_get_parent_style (context, cssnode));
+ static_style = build_properties (context, cssnode, gtk_css_node_get_declaration (cssnode), TRUE);
style = gtk_css_animated_style_new (static_style,
priv->parent ? gtk_style_context_lookup_style (priv->parent) : NULL,
timestamp,
root = gtk_style_context_get_root (context);
style = build_properties (context,
+ root,
gtk_css_node_get_declaration (root),
- TRUE,
- gtk_css_node_get_parent_style (context, root));
+ TRUE);
gtk_css_node_set_style (root, style);
g_object_unref (style);