summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/gtkcsslookup.c35
-rw-r--r--gtk/gtkcsslookupprivate.h4
-rw-r--r--gtk/gtkstylecontext.c17
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);