]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcssimagevalue.c
filechooser: Also convert get_uris() to returning native paths
[~andy/gtk] / gtk / gtkcssimagevalue.c
index e67e9ea51a02870bcc4739c4439695de875140dc..dac0c2fac8cb974bf2db0c608ab02dc2afc19058 100644 (file)
@@ -33,25 +33,53 @@ gtk_css_value_image_free (GtkCssValue *value)
   g_slice_free (GtkCssValue, value);
 }
 
+static GtkCssValue *
+gtk_css_value_image_compute (GtkCssValue             *value,
+                             guint                    property_id,
+                             GtkStyleProviderPrivate *provider,
+                             GtkCssComputedValues    *values,
+                             GtkCssComputedValues    *parent_values,
+                             GtkCssDependencies      *dependencies)
+{
+  GtkCssImage *image, *computed;
+  
+  image = _gtk_css_image_value_get_image (value);
+
+  if (image == NULL)
+    return _gtk_css_value_ref (value);
+
+  computed = _gtk_css_image_compute (image, property_id, provider, values, parent_values, dependencies);
+
+  if (computed == image)
+    {
+      g_object_unref (computed);
+      return _gtk_css_value_ref (value);
+    }
+
+  return _gtk_css_image_value_new (computed);
+}
+
 static gboolean
 gtk_css_value_image_equal (const GtkCssValue *value1,
                            const GtkCssValue *value2)
 {
-  return value1->image == value2->image;
+  return _gtk_css_image_equal (value1->image, value2->image);
 }
 
 static GtkCssValue *
 gtk_css_value_image_transition (GtkCssValue *start,
                                 GtkCssValue *end,
+                                guint        property_id,
                                 double       progress)
 {
-  GtkCssImage *fade;
+  GtkCssImage *transition;
 
-  fade = _gtk_css_image_cross_fade_new (_gtk_css_image_value_get_image (start),
-                                        _gtk_css_image_value_get_image (end),
-                                        progress);
+  transition = _gtk_css_image_transition (_gtk_css_image_value_get_image (start),
+                                          _gtk_css_image_value_get_image (end),
+                                          property_id,
+                                          progress);
       
-  return _gtk_css_image_value_new (fade);
+  return _gtk_css_image_value_new (transition);
 }
 
 static void
@@ -66,6 +94,7 @@ gtk_css_value_image_print (const GtkCssValue *value,
 
 static const GtkCssValueClass GTK_CSS_VALUE_IMAGE = {
   gtk_css_value_image_free,
+  gtk_css_value_image_compute,
   gtk_css_value_image_equal,
   gtk_css_value_image_transition,
   gtk_css_value_image_print