mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-11 11:20:12 +00:00
themingengine: Render inset box shadow on top of backgrounds
This commit is contained in:
parent
590aadd056
commit
b196abe8be
@ -358,7 +358,7 @@ _gtk_box_shadow_render (GtkShadow *shadow,
|
||||
element->spread, element->spread);
|
||||
|
||||
_gtk_rounded_box_path (&box, cr);
|
||||
_gtk_rounded_box_path (padding_box, cr);
|
||||
_gtk_rounded_box_clip_path (padding_box, cr);
|
||||
|
||||
gdk_cairo_set_source_rgba (cr, &element->color);
|
||||
cairo_fill (cr);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user