diff options
-rw-r--r-- | gtk/gtkcsslookup.c | 35 | ||||
-rw-r--r-- | gtk/gtkcsslookupprivate.h | 4 | ||||
-rw-r--r-- | gtk/gtkstylecontext.c | 17 |
3 files changed, 37 insertions, 19 deletions
diff --git a/gtk/gtkcsslookup.c b/gtk/gtkcsslookup.c index 0e2a952a8b..0d0920f22e 100644 --- a/gtk/gtkcsslookup.c +++ b/gtk/gtkcsslookup.c @@ -19,9 +19,11 @@ #include "gtkcsslookupprivate.h" +#include "gtkcssanimatedstyleprivate.h" +#include "gtkcssstaticstyleprivate.h" +#include "gtkcssstylepropertyprivate.h" #include "gtkcsstypesprivate.h" #include "gtkprivatetypebuiltins.h" -#include "gtkcssstylepropertyprivate.h" GtkCssLookup * _gtk_css_lookup_new (const GtkBitmask *relevant) @@ -106,15 +108,15 @@ void _gtk_css_lookup_resolve (GtkCssLookup *lookup, GtkStyleProviderPrivate *provider, int scale, - GtkCssAnimatedStyle *style, + GtkCssStyle *style, GtkCssStyle *parent_style) { guint i, n; g_return_if_fail (lookup != NULL); g_return_if_fail (GTK_IS_STYLE_PROVIDER_PRIVATE (provider)); - g_return_if_fail (GTK_IS_CSS_ANIMATED_STYLE (style)); - g_return_if_fail (parent_style == NULL || GTK_IS_CSS_ANIMATED_STYLE (parent_style)); + g_return_if_fail (GTK_IS_CSS_STYLE (style)); + g_return_if_fail (parent_style == NULL || GTK_IS_CSS_STYLE (parent_style)); n = _gtk_css_style_property_get_n_properties (); @@ -122,13 +124,24 @@ _gtk_css_lookup_resolve (GtkCssLookup *lookup, { if (lookup->values[i].value || _gtk_bitmask_get (lookup->missing, i)) - gtk_css_animated_style_compute_value (style, - provider, - scale, - parent_style, - i, - lookup->values[i].value, - lookup->values[i].section); + { + if (GTK_IS_CSS_ANIMATED_STYLE (style)) + gtk_css_animated_style_compute_value (GTK_CSS_ANIMATED_STYLE (style), + provider, + scale, + parent_style, + i, + lookup->values[i].value, + lookup->values[i].section); + else + gtk_css_static_style_compute_value (GTK_CSS_STATIC_STYLE (style), + provider, + scale, + parent_style, + i, + lookup->values[i].value, + lookup->values[i].section); + } /* else not a relevant property */ } } diff --git a/gtk/gtkcsslookupprivate.h b/gtk/gtkcsslookupprivate.h index 2b53e4ace6..2b0c02105b 100644 --- a/gtk/gtkcsslookupprivate.h +++ b/gtk/gtkcsslookupprivate.h @@ -20,7 +20,7 @@ #include <glib-object.h> #include "gtk/gtkbitmaskprivate.h" -#include "gtk/gtkcssanimatedstyleprivate.h" +#include "gtk/gtkcssstyleprivate.h" #include "gtk/gtkcsssection.h" @@ -51,7 +51,7 @@ void _gtk_css_lookup_set (GtkCssLookup void _gtk_css_lookup_resolve (GtkCssLookup *lookup, GtkStyleProviderPrivate *provider, int scale, - GtkCssAnimatedStyle *style, + GtkCssStyle *style, GtkCssStyle *parent_style); static inline const GtkBitmask * diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index 479bf14a3a..2b262738d7 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -24,6 +24,7 @@ #include "gtkstylecontextprivate.h" #include "gtkcontainerprivate.h" +#include "gtkcssanimatedstyleprivate.h" #include "gtkcsscolorvalueprivate.h" #include "gtkcsscornervalueprivate.h" #include "gtkcssenumvalueprivate.h" @@ -33,6 +34,7 @@ #include "gtkcssnumbervalueprivate.h" #include "gtkcssrgbavalueprivate.h" #include "gtkcssshadowsvalueprivate.h" +#include "gtkcssstaticstyleprivate.h" #include "gtkcssstylepropertyprivate.h" #include "gtkcsstransformvalueprivate.h" #include "gtkdebug.h" @@ -680,7 +682,7 @@ create_query_path (GtkStyleContext *context, static void build_properties (GtkStyleContext *context, - GtkCssStyle *values, + GtkCssStyle *style, const GtkCssNodeDeclaration *decl, const GtkBitmask *relevant_changes, GtkCssChange *out_change) @@ -704,7 +706,7 @@ build_properties (GtkStyleContext *context, _gtk_css_lookup_resolve (lookup, GTK_STYLE_PROVIDER_PRIVATE (priv->cascade), priv->scale, - GTK_CSS_ANIMATED_STYLE (values), + style, priv->parent ? style_values_lookup (priv->parent) : NULL); _gtk_css_lookup_free (lookup); @@ -734,11 +736,11 @@ style_values_lookup (GtkStyleContext *context) return values; } - values = gtk_css_animated_style_new (); - style_info_set_values (info, values); if (gtk_style_context_is_saved (context)) { +<<<<<<< HEAD + values = gtk_css_static_style_new (); g_hash_table_insert (priv->style_values, gtk_css_node_declaration_ref (info->decl), g_object_ref (values)); @@ -747,11 +749,14 @@ style_values_lookup (GtkStyleContext *context) } else { + values = gtk_css_animated_style_new (); + build_properties (context, values, info->decl, NULL, &priv->relevant_changes); /* These flags are always relevant */ priv->relevant_changes |= GTK_CSS_CHANGE_SOURCE; } - + + style_info_set_values (info, values); g_object_unref (values); return values; @@ -772,7 +777,7 @@ style_values_lookup_for_state (GtkStyleContext *context, decl = gtk_css_node_declaration_ref (context->priv->info->decl); gtk_css_node_declaration_set_state (&decl, state); - values = gtk_css_animated_style_new (); + values = gtk_css_static_style_new (); build_properties (context, values, decl, NULL, NULL); gtk_css_node_declaration_unref (decl); |