diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2011-06-09 22:41:36 -0400 |
---|---|---|
committer | Cosimo Cecchi <cosimoc@gnome.org> | 2011-06-09 23:07:50 -0400 |
commit | 9e5d6544ba3703a63a7dfc40ca9bd1590dda5c42 (patch) | |
tree | 333c49de42a9a85afe6ab8a27600329a77a572fe /gtk/gtkborderimage.c | |
parent | 35fdce68e155765a131039c1a745c6b26d663338 (diff) | |
download | gtk+-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.c | 13 |
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 (¶meter[0].value, CAIRO_GOBJECT_TYPE_PATTERN); + + if ((image != NULL) && + (image->source_gradient != NULL)) + g_value_init (¶meter[0].value, GTK_TYPE_GRADIENT); + else + g_value_init (¶meter[0].value, CAIRO_GOBJECT_TYPE_PATTERN); parameter[1].name = "border-image-slice"; g_value_init (¶meter[1].value, GTK_TYPE_BORDER); @@ -163,7 +168,11 @@ _gtk_border_image_unpack (const GValue *value, if (image != NULL) { - g_value_set_boxed (¶meter[0].value, image->source); + if (image->source_gradient != NULL) + g_value_set_boxed (¶meter[0].value, image->source_gradient); + else + g_value_set_boxed (¶meter[0].value, image->source); + g_value_set_boxed (¶meter[1].value, &image->slice); g_value_set_boxed (¶meter[2].value, &image->repeat); g_value_set_boxed (¶meter[3].value, image->width); |