[Xfce4-commits] <gtk-xfce-engine:peter/refresh> Use parent background for smooth edges.
Peter de Ridder
noreply at xfce.org
Sun Jan 5 14:18:01 CET 2014
Updating branch refs/heads/peter/refresh
to e91f7cd0cfa190a3e71f246793dd4a7cae9953d0 (commit)
from 8358551451918f61947dbd9e0066ee8a08b51149 (commit)
commit e91f7cd0cfa190a3e71f246793dd4a7cae9953d0
Author: Peter de Ridder <peter at xfce.org>
Date: Sun Jan 5 14:00:38 2014 +0100
Use parent background for smooth edges.
gtk-2.0/xfce_theme_draw.c | 28 +++++++++++++++++++++-------
1 file changed, 21 insertions(+), 7 deletions(-)
diff --git a/gtk-2.0/xfce_theme_draw.c b/gtk-2.0/xfce_theme_draw.c
index 1e0c0db..f2a4abd 100644
--- a/gtk-2.0/xfce_theme_draw.c
+++ b/gtk-2.0/xfce_theme_draw.c
@@ -383,6 +383,9 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state
{
gint xt, yt;
cairo_t *cr;
+ GtkWidget *parent;
+ GtkStyle *pstyle;
+ GdkColor *pbg;
CHECK_ARGS;
@@ -391,6 +394,17 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state
SANITIZE_SIZE;
+ parent = gtk_widget_get_parent(widget);
+ if (parent)
+ {
+ pstyle = gtk_widget_get_style(widget);
+ pbg = &pstyle->bg[gtk_widget_get_state(parent)];
+ }
+ else
+ {
+ pbg = &style->mid[state_type];
+ }
+
/* Spin buttons are a special case */
if (widget && GTK_IS_SPIN_BUTTON (widget))
{
@@ -465,7 +479,7 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state
state_type = GTK_STATE_NORMAL;
}
- gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+ gdk_cairo_set_source_color(cr, pbg);
cairo_rectangle(cr, x, y, 1, 1);
cairo_rectangle(cr, x + width - 1, y, 1, 1);
cairo_rectangle(cr, x, y + height - 1, 1, 1);
@@ -559,7 +573,7 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state
cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1);
cairo_stroke(cr);
- gdk_cairo_set_source_color(cr, &style->mid[GTK_STATE_NORMAL]);
+ gdk_cairo_set_source_color(cr, pbg);
cairo_rectangle(cr, x, y, 1, 1);
cairo_rectangle(cr, x + width - 1, y, 1, 1);
cairo_rectangle(cr, x, y + height - 1, 1, 1);
@@ -592,7 +606,7 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state
cairo_line_to(cr, x + width - 1.5, y + 2.5);
cairo_stroke(cr);
- gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+ gdk_cairo_set_source_color(cr, pbg);
cairo_rectangle(cr, x, y, 1, 1);
cairo_rectangle(cr, x + width - 1, y, 1, 1);
cairo_rectangle(cr, x, y + height - 1, 1, 1);
@@ -614,7 +628,7 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state
cairo_line_to(cr, x + width - 0.5, y + 1.5);
cairo_stroke(cr);
- gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+ gdk_cairo_set_source_color(cr, pbg);
cairo_rectangle(cr, x, y, 1, 1);
cairo_rectangle(cr, x + width - 1, y, 1, 1);
cairo_rectangle(cr, x, y + height - 1, 1, 1);
@@ -685,7 +699,7 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state
cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1);
cairo_stroke(cr);
- gdk_cairo_set_source_color(cr, &style->mid[GTK_STATE_NORMAL]);
+ gdk_cairo_set_source_color(cr, pbg);
cairo_rectangle(cr, x, y, 1, 1);
cairo_rectangle(cr, x + width - 1, y, 1, 1);
cairo_rectangle(cr, x, y + height - 1, 1, 1);
@@ -865,7 +879,7 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state
cairo_line_to(cr, x + width - 1.5, y + 1.5);
cairo_stroke(cr);
- gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+ gdk_cairo_set_source_color(cr, pbg);
cairo_rectangle(cr, x, y, 1, 1);
cairo_rectangle(cr, x + width - 1, y, 1, 1);
cairo_rectangle(cr, x, y + height - 1, 1, 1);
@@ -887,7 +901,7 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state
cairo_line_to(cr, x + width - 0.5, y + 1.5);
cairo_stroke(cr);
- gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+ gdk_cairo_set_source_color(cr, pbg);
cairo_rectangle(cr, x, y, 1, 1);
cairo_rectangle(cr, x + width - 1, y, 1, 1);
cairo_rectangle(cr, x, y + height - 1, 1, 1);
More information about the Xfce4-commits
mailing list