diff options
author | Benjamin Otte <otte@redhat.com> | 2011-06-11 06:19:51 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2011-06-11 09:29:43 +0200 |
commit | b196abe8beac084fe72609e2642f466cc27a35d8 (patch) | |
tree | 75448ab0912c6845883dd2c320e063c22dbc92aa /gtk/gtkthemingengine.c | |
parent | 590aadd05679871945044f739fedbbf19a88f88b (diff) | |
download | gtk+-b196abe8beac084fe72609e2642f466cc27a35d8.tar.gz |
themingengine: Render inset box shadow on top of backgrounds
Diffstat (limited to 'gtk/gtkthemingengine.c')
-rw-r--r-- | gtk/gtkthemingengine.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gtk/gtkthemingengine.c b/gtk/gtkthemingengine.c index 67c790a760..47f6b9a575 100644 --- a/gtk/gtkthemingengine.c +++ b/gtk/gtkthemingengine.c @@ -1387,6 +1387,7 @@ render_background_internal (GtkThemingEngine *engine, gboolean running; gdouble progress; GtkRoundedBox border_box; + GtkShadow *box_shadow; flags = gtk_theming_engine_get_state (engine); @@ -1394,6 +1395,7 @@ render_background_internal (GtkThemingEngine *engine, gtk_theming_engine_get (engine, flags, "background-image", &pattern, + "box-shadow", &box_shadow, NULL); cairo_save (cr); @@ -1600,6 +1602,17 @@ render_background_internal (GtkThemingEngine *engine, if (pattern) cairo_pattern_destroy (pattern); + if (box_shadow != NULL) + { + GtkBorder border; + gtk_theming_engine_get_border (engine, flags, &border); + _gtk_rounded_box_shrink (&border_box, + border.top, border.right, + border.bottom, border.left); + _gtk_box_shadow_render (box_shadow, cr, &border_box); + _gtk_shadow_unref (box_shadow); + } + cairo_restore (cr); } |