[gtk/wip/baedert/for-master: 27/29] cssstaticstyle: Compute initial/inherit values directly
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/baedert/for-master: 27/29] cssstaticstyle: Compute initial/inherit values directly
- Date: Fri, 23 Aug 2019 07:55:34 +0000 (UTC)
commit 030e0a13cce9957ca4b3e6b39c213a45b5aed4a9
Author: Timm Bäder <mail baedert org>
Date: Thu Aug 22 19:25:22 2019 +0200
cssstaticstyle: Compute initial/inherit values directly
gtk/gtkcssinitialvalue.c | 14 +++++++++++++-
gtk/gtkcssinitialvalueprivate.h | 4 +---
gtk/gtkcssstaticstyle.c | 17 ++++++++++++-----
3 files changed, 26 insertions(+), 9 deletions(-)
---
diff --git a/gtk/gtkcssinitialvalue.c b/gtk/gtkcssinitialvalue.c
index db479cfabc..258d9f604d 100644
--- a/gtk/gtkcssinitialvalue.c
+++ b/gtk/gtkcssinitialvalue.c
@@ -37,7 +37,7 @@ gtk_css_value_initial_free (GtkCssValue *value)
g_assert_not_reached ();
}
-GtkCssValue *
+static GtkCssValue *
gtk_css_value_initial_compute (GtkCssValue *value,
guint property_id,
GtkStyleProvider *provider,
@@ -124,3 +124,15 @@ _gtk_css_initial_value_get (void)
{
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);
+}
diff --git a/gtk/gtkcssinitialvalueprivate.h b/gtk/gtkcssinitialvalueprivate.h
index 08e501f20f..7bec6bd5a0 100644
--- a/gtk/gtkcssinitialvalueprivate.h
+++ b/gtk/gtkcssinitialvalueprivate.h
@@ -26,9 +26,7 @@ G_BEGIN_DECLS
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);
diff --git a/gtk/gtkcssstaticstyle.c b/gtk/gtkcssstaticstyle.c
index 840281e24e..6cb835d6e2 100644
--- a/gtk/gtkcssstaticstyle.c
+++ b/gtk/gtkcssstaticstyle.c
@@ -218,13 +218,20 @@ gtk_css_static_style_compute_value (GtkCssStaticStyle *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);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]