summaryrefslogtreecommitdiff
path: root/gtk/gtkcsstypes.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2012-03-06 14:16:32 +0100
committerAlexander Larsson <alexl@redhat.com>2012-03-08 11:03:57 +0100
commit7603e6e47395b8e1d66522a22255637fa10d3a47 (patch)
tree0f5e58f31234cea8f6b6503e2b85b646dc603b29 /gtk/gtkcsstypes.c
parent0ece7a5de3eae5f4d7e4d1623d191a0a0628e652 (diff)
downloadgtk+-7603e6e47395b8e1d66522a22255637fa10d3a47.tar.gz
css: Use GtkCssValues instead of GValue in the css machinery
Also, in places where we're computing a new CssValue based on an old one, make sure that if nothing changes we're returning a reference to the old one, rather than creating a new identical instance.
Diffstat (limited to 'gtk/gtkcsstypes.c')
-rw-r--r--gtk/gtkcsstypes.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gtk/gtkcsstypes.c b/gtk/gtkcsstypes.c
index ffa7a27ab5..c454fea9fe 100644
--- a/gtk/gtkcsstypes.c
+++ b/gtk/gtkcsstypes.c
@@ -62,7 +62,7 @@ _gtk_css_number_get (const GtkCssNumber *number,
return number->value;
}
-void
+gboolean
_gtk_css_number_compute (GtkCssNumber *dest,
const GtkCssNumber *src,
GtkStyleContext *context)
@@ -100,12 +100,12 @@ _gtk_css_number_compute (GtkCssNumber *dest,
dest->unit = GTK_CSS_PX;
break;
case GTK_CSS_EM:
- dest->value = src->value * g_value_get_double (_gtk_style_context_peek_property (context, "font-size"));
+ dest->value = src->value * _gtk_css_value_get_double (_gtk_style_context_peek_property (context, "font-size"));
dest->unit = GTK_CSS_PX;
break;
case GTK_CSS_EX:
/* for now we pretend ex is half of em */
- dest->value = src->value * g_value_get_double (_gtk_style_context_peek_property (context, "font-size"));
+ dest->value = src->value * _gtk_css_value_get_double (_gtk_style_context_peek_property (context, "font-size"));
dest->unit = GTK_CSS_PX;
break;
case GTK_CSS_RAD:
@@ -121,6 +121,8 @@ _gtk_css_number_compute (GtkCssNumber *dest,
dest->unit = GTK_CSS_DEG;
break;
}
+
+ return !_gtk_css_number_equal (src, dest);
}
void