summaryrefslogtreecommitdiff
path: root/gtk/gtkborderimage.c
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2011-06-09 22:41:36 -0400
committerCosimo Cecchi <cosimoc@gnome.org>2011-06-09 23:07:50 -0400
commit9e5d6544ba3703a63a7dfc40ca9bd1590dda5c42 (patch)
tree333c49de42a9a85afe6ab8a27600329a77a572fe /gtk/gtkborderimage.c
parent35fdce68e155765a131039c1a745c6b26d663338 (diff)
downloadgtk+-9e5d6544ba3703a63a7dfc40ca9bd1590dda5c42.tar.gz
border-image: unpack the GtkGradient if there's one
So that it will eventually be resolved by the style property lookup machinery.
Diffstat (limited to 'gtk/gtkborderimage.c')
-rw-r--r--gtk/gtkborderimage.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gtk/gtkborderimage.c b/gtk/gtkborderimage.c
index f5cca50dfe..3f41cdf661 100644
--- a/gtk/gtkborderimage.c
+++ b/gtk/gtkborderimage.c
@@ -150,7 +150,12 @@ _gtk_border_image_unpack (const GValue *value,
GtkBorderImage *image = g_value_get_boxed (value);
parameter[0].name = "border-image-source";
- g_value_init (&parameter[0].value, CAIRO_GOBJECT_TYPE_PATTERN);
+
+ if ((image != NULL) &&
+ (image->source_gradient != NULL))
+ g_value_init (&parameter[0].value, GTK_TYPE_GRADIENT);
+ else
+ g_value_init (&parameter[0].value, CAIRO_GOBJECT_TYPE_PATTERN);
parameter[1].name = "border-image-slice";
g_value_init (&parameter[1].value, GTK_TYPE_BORDER);
@@ -163,7 +168,11 @@ _gtk_border_image_unpack (const GValue *value,
if (image != NULL)
{
- g_value_set_boxed (&parameter[0].value, image->source);
+ if (image->source_gradient != NULL)
+ g_value_set_boxed (&parameter[0].value, image->source_gradient);
+ else
+ g_value_set_boxed (&parameter[0].value, image->source);
+
g_value_set_boxed (&parameter[1].value, &image->slice);
g_value_set_boxed (&parameter[2].value, &image->repeat);
g_value_set_boxed (&parameter[3].value, image->width);