summaryrefslogtreecommitdiff
path: root/gtk/gtkthemingengine.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-06-11 06:19:51 +0200
committerBenjamin Otte <otte@redhat.com>2011-06-11 09:29:43 +0200
commitb196abe8beac084fe72609e2642f466cc27a35d8 (patch)
tree75448ab0912c6845883dd2c320e063c22dbc92aa /gtk/gtkthemingengine.c
parent590aadd05679871945044f739fedbbf19a88f88b (diff)
downloadgtk+-b196abe8beac084fe72609e2642f466cc27a35d8.tar.gz
themingengine: Render inset box shadow on top of backgrounds
Diffstat (limited to 'gtk/gtkthemingengine.c')
-rw-r--r--gtk/gtkthemingengine.c13
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);
}