[gtk+/wip/cssstyle: 5/30] stylecontext: Use a static style when saved
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/cssstyle: 5/30] stylecontext: Use a static style when saved
- Date: Tue, 6 Jan 2015 00:57:54 +0000 (UTC)
commit 9ea113ac2bb9ef1ec19bdd2dd9a1d7e3cc8e50df
Author: Benjamin Otte <otte redhat com>
Date: Sun Oct 26 19:38:38 2014 +0100
stylecontext: Use a static style when saved
The only style that is animated is the style of the unsaved primary
node. So there's no need to create animated style objects for the other
ones.
There is a bunch of ugliness in the code currently. Further commits are
expected to fix them.
gtk/gtkcsslookup.c | 35 ++++++++++++++++++++++++-----------
gtk/gtkcsslookupprivate.h | 4 ++--
gtk/gtkstylecontext.c | 17 +++++++++++------
3 files changed, 37 insertions(+), 19 deletions(-)
---
diff --git a/gtk/gtkcsslookup.c b/gtk/gtkcsslookup.c
index 0e2a952..0d0920f 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 2b53e4a..2b0c021 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 479bf14..2b26273 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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]