[gtk+/wip/cssdep: 2/21] css: Pass property_id to compute function



commit 69c02f0e070b427d36ac5bdb933d0e59ccb72d10
Author: Benjamin Otte <otte redhat com>
Date:   Thu Jul 12 03:43:15 2012 +0200

    css: Pass property_id to compute function
    
    This is a reorganization of how value computing should be done.
    Previously the GtkCssStyleProperty.compute vfunc was supposed to take
    care of special cases when it needed those for computation. However,
    this proved to be very complicated in cases where values were nested and
    only the last value (of a common type) needed to be special cased.
    
    A common example for this was the fallback handling for unresolvable
    colors.
    
    Now, we pass the property's ID along with all compute functions so we
    can do the special casing where it's necessary.
    Note that no actual changes happen in this commit. This will happen in
    follow-ups.

 gtk/gtkcssarrayvalue.c        |    3 ++-
 gtk/gtkcssbgsizevalue.c       |    5 +++--
 gtk/gtkcssbordervalue.c       |    3 ++-
 gtk/gtkcsscornervalue.c       |    5 +++--
 gtk/gtkcsseasevalue.c         |    1 +
 gtk/gtkcssenginevalue.c       |    1 +
 gtk/gtkcssenumvalue.c         |    1 +
 gtk/gtkcssimage.c             |    4 +++-
 gtk/gtkcssimagegradient.c     |    1 +
 gtk/gtkcssimagelinear.c       |    5 +++--
 gtk/gtkcssimageprivate.h      |    2 ++
 gtk/gtkcssimagevalue.c        |    3 ++-
 gtk/gtkcssinheritvalue.c      |    1 +
 gtk/gtkcssinitialvalue.c      |    1 +
 gtk/gtkcssnumbervalue.c       |    1 +
 gtk/gtkcsspositionvalue.c     |    5 +++--
 gtk/gtkcssrepeatvalue.c       |    1 +
 gtk/gtkcssrgbavalue.c         |    1 +
 gtk/gtkcssshadowsvalue.c      |    3 ++-
 gtk/gtkcssshadowvalue.c       |    9 +++++----
 gtk/gtkcssstringvalue.c       |    1 +
 gtk/gtkcssstylepropertyimpl.c |   24 ++++++++++++------------
 gtk/gtkcsstypedvalue.c        |    1 +
 gtk/gtkcssvalue.c             |    3 ++-
 gtk/gtkcssvalueprivate.h      |    2 ++
 gtk/gtksymboliccolor.c        |    1 +
 26 files changed, 58 insertions(+), 30 deletions(-)
---
diff --git a/gtk/gtkcssarrayvalue.c b/gtk/gtkcssarrayvalue.c
index 985d195..a4fa0f4 100644
--- a/gtk/gtkcssarrayvalue.c
+++ b/gtk/gtkcssarrayvalue.c
@@ -42,6 +42,7 @@ gtk_css_value_array_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_array_compute (GtkCssValue     *value,
+                             guint            property_id,
                              GtkStyleContext *context)
 {
   GtkCssValue *result;
@@ -54,7 +55,7 @@ gtk_css_value_array_compute (GtkCssValue     *value,
   result = _gtk_css_array_value_new_from_array (value->values, value->n_values);
   for (i = 0; i < value->n_values; i++)
     {
-      result->values[i] = _gtk_css_value_compute (value->values[i], context);
+      result->values[i] = _gtk_css_value_compute (value->values[i], property_id, context);
       changed |= (result->values[i] != value->values[i]);
     }
 
diff --git a/gtk/gtkcssbgsizevalue.c b/gtk/gtkcssbgsizevalue.c
index 2ba0eb1..38f6054 100644
--- a/gtk/gtkcssbgsizevalue.c
+++ b/gtk/gtkcssbgsizevalue.c
@@ -42,13 +42,14 @@ gtk_css_value_bg_size_free (GtkCssValue *value)
 
 GtkCssValue *
 gtk_css_value_bg_size_compute (GtkCssValue     *value,
+                               guint            property_id,
                                GtkStyleContext *context)
 {
   if (value->x == NULL && value->y == NULL)
     return _gtk_css_value_ref (value);
 
-  return _gtk_css_bg_size_value_new (value->x ? _gtk_css_value_compute (value->x, context) : NULL,
-                                     value->y ? _gtk_css_value_compute (value->y, context) : NULL);
+  return _gtk_css_bg_size_value_new (value->x ? _gtk_css_value_compute (value->x, property_id, context) : NULL,
+                                     value->y ? _gtk_css_value_compute (value->y, property_id, context) : NULL);
 }
 
 static gboolean
diff --git a/gtk/gtkcssbordervalue.c b/gtk/gtkcssbordervalue.c
index 53ba12f..45f7fd1 100644
--- a/gtk/gtkcssbordervalue.c
+++ b/gtk/gtkcssbordervalue.c
@@ -43,6 +43,7 @@ gtk_css_value_border_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_border_compute (GtkCssValue     *value,
+                              guint            property_id,
                               GtkStyleContext *context)
 {
   GtkCssValue *computed;
@@ -56,7 +57,7 @@ gtk_css_value_border_compute (GtkCssValue     *value,
     {
       if (value->values[i])
         {
-          computed->values[i] = _gtk_css_value_compute (value->values[i], context);
+          computed->values[i] = _gtk_css_value_compute (value->values[i], property_id, context);
           changed |= (computed->values[i] != value->values[i]);
         }
     }
diff --git a/gtk/gtkcsscornervalue.c b/gtk/gtkcsscornervalue.c
index 042c7a2..7e41688 100644
--- a/gtk/gtkcsscornervalue.c
+++ b/gtk/gtkcsscornervalue.c
@@ -38,12 +38,13 @@ gtk_css_value_corner_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_corner_compute (GtkCssValue     *corner,
+                              guint            property_id,
                               GtkStyleContext *context)
 {
   GtkCssValue *x, *y;
 
-  x = _gtk_css_value_compute (corner->x, context);
-  y = _gtk_css_value_compute (corner->y, context);
+  x = _gtk_css_value_compute (corner->x, property_id, context);
+  y = _gtk_css_value_compute (corner->y, property_id, context);
   if (x == corner->x && y == corner->y)
     {
       _gtk_css_value_unref (x);
diff --git a/gtk/gtkcsseasevalue.c b/gtk/gtkcsseasevalue.c
index 8728c82..122d6c1 100644
--- a/gtk/gtkcsseasevalue.c
+++ b/gtk/gtkcsseasevalue.c
@@ -51,6 +51,7 @@ gtk_css_value_ease_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_ease_compute (GtkCssValue     *value,
+                            guint            property_id,
                             GtkStyleContext *context)
 {
   return _gtk_css_value_ref (value);
diff --git a/gtk/gtkcssenginevalue.c b/gtk/gtkcssenginevalue.c
index 437a0b6..8041090 100644
--- a/gtk/gtkcssenginevalue.c
+++ b/gtk/gtkcssenginevalue.c
@@ -36,6 +36,7 @@ gtk_css_value_engine_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_engine_compute (GtkCssValue     *value,
+                              guint            property_id,
                               GtkStyleContext *context)
 {
   return _gtk_css_value_ref (value);
diff --git a/gtk/gtkcssenumvalue.c b/gtk/gtkcssenumvalue.c
index d808ff7..fb9c836 100644
--- a/gtk/gtkcssenumvalue.c
+++ b/gtk/gtkcssenumvalue.c
@@ -37,6 +37,7 @@ gtk_css_value_enum_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_enum_compute (GtkCssValue     *value,
+                            guint            property_id,
                             GtkStyleContext *context)
 {
   return _gtk_css_value_ref (value);
diff --git a/gtk/gtkcssimage.c b/gtk/gtkcssimage.c
index f92d4e9..e10de72 100644
--- a/gtk/gtkcssimage.c
+++ b/gtk/gtkcssimage.c
@@ -58,6 +58,7 @@ gtk_css_image_real_get_aspect_ratio (GtkCssImage *image)
 
 static GtkCssImage *
 gtk_css_image_real_compute (GtkCssImage     *image,
+                            guint            property_id,
                             GtkStyleContext *context)
 {
   return g_object_ref (image);
@@ -115,6 +116,7 @@ _gtk_css_image_get_aspect_ratio (GtkCssImage *image)
 
 GtkCssImage *
 _gtk_css_image_compute (GtkCssImage     *image,
+                        guint            property_id,
                         GtkStyleContext *context)
 {
   GtkCssImageClass *klass;
@@ -124,7 +126,7 @@ _gtk_css_image_compute (GtkCssImage     *image,
 
   klass = GTK_CSS_IMAGE_GET_CLASS (image);
 
-  return klass->compute (image, context);
+  return klass->compute (image, property_id, context);
 }
 
 void
diff --git a/gtk/gtkcssimagegradient.c b/gtk/gtkcssimagegradient.c
index 1398d65..254ebc8 100644
--- a/gtk/gtkcssimagegradient.c
+++ b/gtk/gtkcssimagegradient.c
@@ -28,6 +28,7 @@ G_DEFINE_TYPE (GtkCssImageGradient, _gtk_css_image_gradient, GTK_TYPE_CSS_IMAGE)
 
 static GtkCssImage *
 gtk_css_image_gradient_compute (GtkCssImage     *image,
+                                guint            property_id,
                                 GtkStyleContext *context)
 {
   GtkCssImageGradient *gradient = GTK_CSS_IMAGE_GRADIENT (image);
diff --git a/gtk/gtkcssimagelinear.c b/gtk/gtkcssimagelinear.c
index ffb7775..e644023 100644
--- a/gtk/gtkcssimagelinear.c
+++ b/gtk/gtkcssimagelinear.c
@@ -410,6 +410,7 @@ gtk_css_image_linear_print (GtkCssImage *image,
 
 static GtkCssImage *
 gtk_css_image_linear_compute (GtkCssImage     *image,
+                              guint            property_id,
                               GtkStyleContext *context)
 {
   static const GdkRGBA transparent = { 0, 0, 0, 0 };
@@ -421,7 +422,7 @@ gtk_css_image_linear_compute (GtkCssImage     *image,
   copy = g_object_new (GTK_TYPE_CSS_IMAGE_LINEAR, NULL);
   copy->repeating = linear->repeating;
 
-  copy->angle = _gtk_css_value_compute (linear->angle, context);
+  copy->angle = _gtk_css_value_compute (linear->angle, property_id, context);
   
   fallback = _gtk_css_symbolic_value_new_take_symbolic_color (gtk_symbolic_color_new_literal (&transparent));
   g_array_set_size (copy->stops, linear->stops->len);
@@ -438,7 +439,7 @@ gtk_css_image_linear_compute (GtkCssImage     *image,
                                                                 FALSE);
       
       if (stop->offset)
-        scopy->offset = _gtk_css_value_compute (stop->offset, context);
+        scopy->offset = _gtk_css_value_compute (stop->offset, property_id, context);
       else
         scopy->offset = NULL;
     }
diff --git a/gtk/gtkcssimageprivate.h b/gtk/gtkcssimageprivate.h
index 85014a9..e14387b 100644
--- a/gtk/gtkcssimageprivate.h
+++ b/gtk/gtkcssimageprivate.h
@@ -56,6 +56,7 @@ struct _GtkCssImageClass
 
   /* create "computed value" in CSS terms, returns a new reference */
   GtkCssImage *(* compute)                         (GtkCssImage        *image,
+                                                    guint               property_id,
                                                     GtkStyleContext    *context);
 
   /* draw to 0,0 with the given width and height */
@@ -81,6 +82,7 @@ int            _gtk_css_image_get_height           (GtkCssImage        *image);
 double         _gtk_css_image_get_aspect_ratio     (GtkCssImage        *image);
 
 GtkCssImage *  _gtk_css_image_compute              (GtkCssImage        *image,
+                                                    guint               property_id,
                                                     GtkStyleContext    *context);
 
 void           _gtk_css_image_draw                 (GtkCssImage        *image,
diff --git a/gtk/gtkcssimagevalue.c b/gtk/gtkcssimagevalue.c
index 6f65e22..5cd4929 100644
--- a/gtk/gtkcssimagevalue.c
+++ b/gtk/gtkcssimagevalue.c
@@ -35,6 +35,7 @@ gtk_css_value_image_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_image_compute (GtkCssValue     *value,
+                             guint            property_id,
                              GtkStyleContext *context)
 {
   GtkCssImage *image, *computed;
@@ -44,7 +45,7 @@ gtk_css_value_image_compute (GtkCssValue     *value,
   if (image == NULL)
     return _gtk_css_value_ref (value);
 
-  computed = _gtk_css_image_compute (image, context);
+  computed = _gtk_css_image_compute (image, property_id, context);
 
   if (computed == image)
     {
diff --git a/gtk/gtkcssinheritvalue.c b/gtk/gtkcssinheritvalue.c
index 52f21a0..614abe1 100644
--- a/gtk/gtkcssinheritvalue.c
+++ b/gtk/gtkcssinheritvalue.c
@@ -32,6 +32,7 @@ gtk_css_value_inherit_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_inherit_compute (GtkCssValue     *value,
+                               guint            property_id,
                                GtkStyleContext *context)
 {
   /* This value should be caught further up */
diff --git a/gtk/gtkcssinitialvalue.c b/gtk/gtkcssinitialvalue.c
index f838299..24955c3 100644
--- a/gtk/gtkcssinitialvalue.c
+++ b/gtk/gtkcssinitialvalue.c
@@ -32,6 +32,7 @@ gtk_css_value_initial_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_initial_compute (GtkCssValue     *value,
+                               guint            property_id,
                                GtkStyleContext *context)
 {
   /* This value should be caught further up */
diff --git a/gtk/gtkcssnumbervalue.c b/gtk/gtkcssnumbervalue.c
index c198e43..c929f1d 100644
--- a/gtk/gtkcssnumbervalue.c
+++ b/gtk/gtkcssnumbervalue.c
@@ -35,6 +35,7 @@ gtk_css_value_number_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_number_compute (GtkCssValue     *number,
+                              guint            property_id,
                               GtkStyleContext *context)
 {
   switch (number->unit)
diff --git a/gtk/gtkcsspositionvalue.c b/gtk/gtkcsspositionvalue.c
index e24420a..9f4b0d3 100644
--- a/gtk/gtkcsspositionvalue.c
+++ b/gtk/gtkcsspositionvalue.c
@@ -38,12 +38,13 @@ gtk_css_value_position_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_position_compute (GtkCssValue     *position,
+                                guint            property_id,
                                 GtkStyleContext *context)
 {
   GtkCssValue *x, *y;
 
-  x = _gtk_css_value_compute (position->x, context);
-  y = _gtk_css_value_compute (position->y, context);
+  x = _gtk_css_value_compute (position->x, property_id, context);
+  y = _gtk_css_value_compute (position->y, property_id, context);
   if (x == position->x && y == position->y)
     {
       _gtk_css_value_unref (x);
diff --git a/gtk/gtkcssrepeatvalue.c b/gtk/gtkcssrepeatvalue.c
index 4151f9d..97fe41f 100644
--- a/gtk/gtkcssrepeatvalue.c
+++ b/gtk/gtkcssrepeatvalue.c
@@ -35,6 +35,7 @@ gtk_css_value_repeat_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_repeat_compute (GtkCssValue     *value,
+                              guint            property_id,
                               GtkStyleContext *context)
 {
   return _gtk_css_value_ref (value);
diff --git a/gtk/gtkcssrgbavalue.c b/gtk/gtkcssrgbavalue.c
index 88b8ea0..fc1642c 100644
--- a/gtk/gtkcssrgbavalue.c
+++ b/gtk/gtkcssrgbavalue.c
@@ -36,6 +36,7 @@ gtk_css_value_rgba_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_rgba_compute (GtkCssValue     *value,
+                            guint            property_id,
                             GtkStyleContext *context)
 {
   return _gtk_css_value_ref (value);
diff --git a/gtk/gtkcssshadowsvalue.c b/gtk/gtkcssshadowsvalue.c
index 2b105a5..387076e 100644
--- a/gtk/gtkcssshadowsvalue.c
+++ b/gtk/gtkcssshadowsvalue.c
@@ -49,6 +49,7 @@ gtk_css_value_shadows_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_shadows_compute (GtkCssValue     *value,
+                               guint            property_id,
                                GtkStyleContext *context)
 {
   GtkCssValue *result;
@@ -60,7 +61,7 @@ gtk_css_value_shadows_compute (GtkCssValue     *value,
   result = gtk_css_shadows_value_new (value->values, value->len);
   for (i = 0; i < value->len; i++)
     {
-      result->values[i] = _gtk_css_value_compute (value->values[i], context);
+      result->values[i] = _gtk_css_value_compute (value->values[i], property_id, context);
     }
 
   return result;
diff --git a/gtk/gtkcssshadowvalue.c b/gtk/gtkcssshadowvalue.c
index a1adfc9..dfd3b1c 100644
--- a/gtk/gtkcssshadowvalue.c
+++ b/gtk/gtkcssshadowvalue.c
@@ -61,6 +61,7 @@ gtk_css_value_shadow_free (GtkCssValue *shadow)
 
 static GtkCssValue *
 gtk_css_value_shadow_compute (GtkCssValue     *shadow,
+                              guint            property_id,
                               GtkStyleContext *context)
 {
   GdkRGBA transparent = { 0, 0, 0, 0 };
@@ -73,10 +74,10 @@ gtk_css_value_shadow_compute (GtkCssValue     *shadow,
                                                      FALSE);
   _gtk_css_value_unref (fallback);
 
-  return gtk_css_shadow_value_new (_gtk_css_value_compute (shadow->hoffset, context),
-                                   _gtk_css_value_compute (shadow->voffset, context),
-                                   _gtk_css_value_compute (shadow->radius, context),
-                                   _gtk_css_value_compute (shadow->spread, context),
+  return gtk_css_shadow_value_new (_gtk_css_value_compute (shadow->hoffset, property_id, context),
+                                   _gtk_css_value_compute (shadow->voffset, property_id, context),
+                                   _gtk_css_value_compute (shadow->radius, property_id, context),
+                                   _gtk_css_value_compute (shadow->spread, property_id, context),
                                    shadow->inset,
                                    color);
 }
diff --git a/gtk/gtkcssstringvalue.c b/gtk/gtkcssstringvalue.c
index b5813cd..2bc140d 100644
--- a/gtk/gtkcssstringvalue.c
+++ b/gtk/gtkcssstringvalue.c
@@ -34,6 +34,7 @@ gtk_css_value_string_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_string_compute (GtkCssValue     *value,
+                              guint            property_id,
                               GtkStyleContext *context)
 {
   return _gtk_css_value_ref (value);
diff --git a/gtk/gtkcssstylepropertyimpl.c b/gtk/gtkcssstylepropertyimpl.c
index 48a69f0..162ab3a 100644
--- a/gtk/gtkcssstylepropertyimpl.c
+++ b/gtk/gtkcssstylepropertyimpl.c
@@ -520,7 +520,7 @@ shadow_value_compute (GtkCssStyleProperty *property,
                       GtkStyleContext     *context,
                       GtkCssValue         *specified)
 {
-  return _gtk_css_value_compute (specified, context);
+  return _gtk_css_value_compute (specified, _gtk_css_style_property_get_id (property), context);
 }
 
 static GtkCssValue *
@@ -535,7 +535,7 @@ border_corner_radius_value_compute (GtkCssStyleProperty *property,
                                     GtkStyleContext     *context,
                                     GtkCssValue         *specified)
 {
-  return _gtk_css_value_compute (specified, context);
+  return _gtk_css_value_compute (specified, _gtk_css_style_property_get_id (property), context);
 }
 
 static GtkCssValue *
@@ -561,7 +561,7 @@ css_image_value_compute (GtkCssStyleProperty    *property,
                          GtkStyleContext        *context,
                          GtkCssValue            *specified)
 {
-  return _gtk_css_value_compute (specified, context);
+  return _gtk_css_value_compute (specified, _gtk_css_style_property_get_id (property), context);
 }
 
 static void
@@ -619,7 +619,7 @@ background_image_value_compute (GtkCssStyleProperty    *property,
                                 GtkStyleContext        *context,
                                 GtkCssValue            *specified)
 {
-  return _gtk_css_value_compute (specified, context);
+  return _gtk_css_value_compute (specified, _gtk_css_style_property_get_id (property), context);
 }
 
 static void
@@ -657,7 +657,7 @@ font_size_compute (GtkCssStyleProperty *property,
                    GtkStyleContext     *context,
                    GtkCssValue         *specified)
 {
-  return _gtk_css_value_compute (specified, context);
+  return _gtk_css_value_compute (specified, _gtk_css_style_property_get_id (property), context);
 }
 
 static GtkCssValue *
@@ -674,7 +674,7 @@ outline_compute (GtkCssStyleProperty *property,
                  GtkStyleContext     *context,
                  GtkCssValue         *specified)
 {
-  return _gtk_css_value_compute (specified, context);
+  return _gtk_css_value_compute (specified, _gtk_css_style_property_get_id (property), context);
 }
 
 static GtkCssValue *
@@ -722,7 +722,7 @@ compute_border (GtkCssStyleProperty *property,
                 GtkStyleContext     *context,
                 GtkCssValue         *specified)
 {
-  return _gtk_css_value_compute (specified, context);
+  return _gtk_css_value_compute (specified, _gtk_css_style_property_get_id (property), context);
 }
 
 static GtkCssValue *
@@ -805,7 +805,7 @@ compute_margin (GtkCssStyleProperty *property,
                 GtkStyleContext     *context,
                 GtkCssValue         *specified)
 {
-  return _gtk_css_value_compute (specified, context);
+  return _gtk_css_value_compute (specified, _gtk_css_style_property_get_id (property), context);
 }
 
 static GtkCssValue *
@@ -823,7 +823,7 @@ compute_padding (GtkCssStyleProperty *property,
                  GtkStyleContext     *context,
                  GtkCssValue         *specified)
 {
-  return _gtk_css_value_compute (specified, context);
+  return _gtk_css_value_compute (specified, _gtk_css_style_property_get_id (property), context);
 }
 
 static GtkCssValue *
@@ -852,7 +852,7 @@ compute_border_width (GtkCssStyleProperty    *property,
       border_style == GTK_BORDER_STYLE_HIDDEN)
     return _gtk_css_number_value_new (0, GTK_CSS_PX);
   else
-    return _gtk_css_value_compute (specified, context);
+    return _gtk_css_value_compute (specified, _gtk_css_style_property_get_id (property), context);
 }
 
 static GtkCssValue *
@@ -888,7 +888,7 @@ background_size_compute (GtkCssStyleProperty    *property,
                          GtkStyleContext        *context,
                          GtkCssValue            *specified)
 {
-  return _gtk_css_value_compute (specified, context);
+  return _gtk_css_value_compute (specified, _gtk_css_style_property_get_id (property), context);
 }
 
 static GtkCssValue *
@@ -903,7 +903,7 @@ background_position_compute (GtkCssStyleProperty    *property,
 			     GtkStyleContext        *context,
 			     GtkCssValue            *specified)
 {
-  return _gtk_css_value_compute (specified, context);
+  return _gtk_css_value_compute (specified, _gtk_css_style_property_get_id (property), context);
 }
 
 /*** REGISTRATION ***/
diff --git a/gtk/gtkcsstypedvalue.c b/gtk/gtkcsstypedvalue.c
index 81287a4..eb98684 100644
--- a/gtk/gtkcsstypedvalue.c
+++ b/gtk/gtkcsstypedvalue.c
@@ -35,6 +35,7 @@ gtk_css_value_typed_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_typed_compute (GtkCssValue     *value,
+                             guint            property_id,
                              GtkStyleContext *context)
 {
   return _gtk_css_value_ref (value);
diff --git a/gtk/gtkcssvalue.c b/gtk/gtkcssvalue.c
index 965d573..d07a1ca 100644
--- a/gtk/gtkcssvalue.c
+++ b/gtk/gtkcssvalue.c
@@ -63,12 +63,13 @@ _gtk_css_value_unref (GtkCssValue *value)
 
 GtkCssValue *
 _gtk_css_value_compute (GtkCssValue     *value,
+                        guint            property_id,
                         GtkStyleContext *context)
 {
   g_return_val_if_fail (value != NULL, NULL);
   g_return_val_if_fail (GTK_IS_STYLE_CONTEXT (context), NULL);
 
-  return value->class->compute (value, context);
+  return value->class->compute (value, property_id, context);
 }
 
 gboolean
diff --git a/gtk/gtkcssvalueprivate.h b/gtk/gtkcssvalueprivate.h
index 93fcaf9..74550f7 100644
--- a/gtk/gtkcssvalueprivate.h
+++ b/gtk/gtkcssvalueprivate.h
@@ -43,6 +43,7 @@ struct _GtkCssValueClass {
   void          (* free)                              (GtkCssValue                *value);
 
   GtkCssValue * (* compute)                           (GtkCssValue                *value,
+                                                       guint                       property_id,
                                                        GtkStyleContext            *context);
   gboolean      (* equal)                             (const GtkCssValue          *value1,
                                                        const GtkCssValue          *value2);
@@ -63,6 +64,7 @@ GtkCssValue *_gtk_css_value_ref                       (GtkCssValue
 void         _gtk_css_value_unref                     (GtkCssValue                *value);
 
 GtkCssValue *_gtk_css_value_compute                   (GtkCssValue                *value,
+                                                       guint                       property_id,
                                                        GtkStyleContext            *context);
 gboolean     _gtk_css_value_equal                     (const GtkCssValue          *value1,
                                                        const GtkCssValue          *value2);
diff --git a/gtk/gtksymboliccolor.c b/gtk/gtksymboliccolor.c
index 6cfed74..fe8656d 100644
--- a/gtk/gtksymboliccolor.c
+++ b/gtk/gtksymboliccolor.c
@@ -119,6 +119,7 @@ gtk_css_value_symbolic_free (GtkCssValue *value)
 
 static GtkCssValue *
 gtk_css_value_symbolic_compute (GtkCssValue     *value,
+                                guint            property_id,
                                 GtkStyleContext *context)
 {
   /* for now we expect this to never be called



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]