g_assert_not_reached ();
}
-GtkCssValue *
+static GtkCssValue *
gtk_css_value_initial_compute (GtkCssValue *value,
guint property_id,
GtkStyleProvider *provider,
{
return &initial;
}
+GtkCssValue *
+_gtk_css_initial_value_new_compute (guint property_id,
+ GtkStyleProvider *provider,
+ GtkCssStyle *style,
+ GtkCssStyle *parent_style)
+{
+ return gtk_css_value_initial_compute (NULL,
+ property_id,
+ provider,
+ style,
+ parent_style);
+}
GtkCssValue * _gtk_css_initial_value_new (void);
GtkCssValue * _gtk_css_initial_value_get (void);
-
-GtkCssValue * gtk_css_value_initial_compute (GtkCssValue *value,
- guint property_id,
+GtkCssValue * _gtk_css_initial_value_new_compute (guint property_id,
GtkStyleProvider *provider,
GtkCssStyle *style,
GtkCssStyle *parent_style);
{
GtkCssStyleProperty *prop = _gtk_css_style_property_lookup_by_id (id);
- if (_gtk_css_style_property_is_inherit (prop))
- specified = _gtk_css_inherit_value_get ();
+ if (parent_style && _gtk_css_style_property_is_inherit (prop))
+ {
+ /* Just take the style from the parent */
+ value = _gtk_css_value_ref (gtk_css_style_get_value (parent_style, id));
+ }
else
- specified = _gtk_css_initial_value_get ();
+ {
+ value = _gtk_css_initial_value_new_compute (id, provider, (GtkCssStyle *)style, parent_style);
+ }
+ }
+ else
+ {
+ value = _gtk_css_value_compute (specified, id, provider, (GtkCssStyle *)style, parent_style);
}
-
- value = _gtk_css_value_compute (specified, id, provider, (GtkCssStyle *)style, parent_style);
gtk_css_static_style_set_value (style, id, value, section);
}