[gtk+] render: Draw shadows outside of potential push_group() call
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] render: Draw shadows outside of potential push_group() call
- Date: Tue, 8 Nov 2016 01:33:01 +0000 (UTC)
commit a54db5adcd4c0e94035260e4e6157059ba89fad7
Author: Benjamin Otte <otte redhat com>
Date: Tue Nov 8 02:20:40 2016 +0100
render: Draw shadows outside of potential push_group() call
Before, the shadows were clipped.
gtk/gtkrenderbackground.c | 24 ++++++++++++------------
1 files changed, 12 insertions(+), 12 deletions(-)
---
diff --git a/gtk/gtkrenderbackground.c b/gtk/gtkrenderbackground.c
index c3bc5cd..f3e09e4 100644
--- a/gtk/gtkrenderbackground.c
+++ b/gtk/gtkrenderbackground.c
@@ -376,6 +376,12 @@ gtk_css_style_render_background (GtkCssStyle *style,
cairo_save (cr);
cairo_translate (cr, x, y);
+ /* Outset shadows */
+ _gtk_css_shadows_value_paint_box (box_shadow,
+ cr,
+ &bg.boxes[GTK_CSS_AREA_BORDER_BOX],
+ FALSE);
+
/*
* When we have a blend mode set for the background, we cannot blend the current
* widget's drawing with whatever the content that the Cairo context may have.
@@ -392,12 +398,6 @@ gtk_css_style_render_background (GtkCssStyle *style,
cairo_push_group (cr);
}
- /* Outset shadows */
- _gtk_css_shadows_value_paint_box (box_shadow,
- cr,
- &bg.boxes[GTK_CSS_AREA_BORDER_BOX],
- FALSE);
-
_gtk_theming_background_paint_color (&bg, cr, bg_color, background_image);
number_of_layers = _gtk_css_array_value_get_n_values (background_image);
@@ -411,12 +411,6 @@ gtk_css_style_render_background (GtkCssStyle *style,
_gtk_theming_background_paint_layer (&bg, idx, cr, blend_mode);
}
- /* Inset shadows */
- _gtk_css_shadows_value_paint_box (box_shadow,
- cr,
- &bg.boxes[GTK_CSS_AREA_PADDING_BOX],
- TRUE);
-
/* Paint back the resulting surface */
if (needs_push_group)
{
@@ -425,6 +419,12 @@ gtk_css_style_render_background (GtkCssStyle *style,
cairo_restore (cr);
}
+ /* Inset shadows */
+ _gtk_css_shadows_value_paint_box (box_shadow,
+ cr,
+ &bg.boxes[GTK_CSS_AREA_PADDING_BOX],
+ TRUE);
+
cairo_restore (cr);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]