[gtk+/wip/window-scales: 65/69] GtkCssImageScaled: Ensure we compute the child when computing the image



commit cdabe7db9148d03dcf7e3584e5be0706b3e5ad1f
Author: Alexander Larsson <alexl redhat com>
Date:   Fri Jun 28 00:22:00 2013 +0200

    GtkCssImageScaled: Ensure we compute the child when computing the image

 gtk/gtkcssimagescaled.c |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)
---
diff --git a/gtk/gtkcssimagescaled.c b/gtk/gtkcssimagescaled.c
index e0a9f4c..125e53e 100644
--- a/gtk/gtkcssimagescaled.c
+++ b/gtk/gtkcssimagescaled.c
@@ -103,7 +103,7 @@ gtk_css_image_scaled_compute (GtkCssImage             *image,
   GtkCssImageScaled *copy;
   int i;
 
-  scale = MIN (scale, scaled->n_images);
+  scale = MAX(MIN (scale, scaled->n_images), 1);
 
   if (scaled->scale == scale)
     return g_object_ref (scaled);
@@ -112,9 +112,20 @@ gtk_css_image_scaled_compute (GtkCssImage             *image,
       copy = g_object_new (_gtk_css_image_scaled_get_type (), NULL);
       copy->scale = scale;
       copy->n_images = scaled->n_images;
-      copy->images = g_memdup (scaled->images, sizeof (GtkCssImage *) * scaled->n_images);
+      copy->images = g_new (GtkCssImage *, scaled->n_images);
       for (i = 0; i < scaled->n_images; i++)
-       g_object_ref (copy->images[i]);
+        {
+          if (i == scale - 1)
+            copy->images[i] = _gtk_css_image_compute (scaled->images[i],
+                                                      property_id,
+                                                      provider,
+                                                      scale,
+                                                      values,
+                                                      parent_values,
+                                                      dependencies);
+          else
+            copy->images[i] = g_object_ref (scaled->images[i]);
+        }
 
       return GTK_CSS_IMAGE (copy);
     }


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