[Xfce4-commits] <gtk-xfce-engine:peter/refresh> Added flat_border style property.

Peter de Ridder noreply at xfce.org
Sun Dec 15 22:12:04 CET 2013


Updating branch refs/heads/peter/refresh
         to 32dce2c571c45b1da25b4b6116e6e13d5d95a76e (commit)
       from 5f5e546e368772d64c9855a038026eb81156af98 (commit)

commit 32dce2c571c45b1da25b4b6116e6e13d5d95a76e
Author: Peter de Ridder <peter at xfce.org>
Date:   Sun Dec 15 22:03:51 2013 +0100

    Added flat_border style property.

 gtk-2.0/xfce_rc_style.c   |   11 +
 gtk-2.0/xfce_rc_style.h   |    2 +
 gtk-2.0/xfce_theme_draw.c |  788 ++++++++++++++++++++++++---------------------
 3 files changed, 435 insertions(+), 366 deletions(-)

diff --git a/gtk-2.0/xfce_rc_style.c b/gtk-2.0/xfce_rc_style.c
index 99db22c..a732b69 100644
--- a/gtk-2.0/xfce_rc_style.c
+++ b/gtk-2.0/xfce_rc_style.c
@@ -77,6 +77,7 @@ theme_symbols[] =
     { "southern_diagonal", TOKEN_SOUTHERN_DIAGONAL },
     { "shade_start", TOKEN_SHADE_START },
     { "shade_end", TOKEN_SHADE_END },
+    { "flat_border", TOKEN_FLATBORDER },
     { "true", TOKEN_TRUE},
     { "TRUE", TOKEN_TRUE},
     { "false", TOKEN_FALSE},
@@ -116,6 +117,7 @@ static void xfce_rc_style_init(XfceRcStyle * style)
     style->gradient_style = XFCE_RC_GRADIENT_AUTO;
     style->shade_start = DEFAULT_SHADE_START;
     style->shade_end = DEFAULT_SHADE_END;
+    style->flat_border = FALSE;
 }
 
 static void xfce_rc_style_class_init(XfceRcStyleClass * klass)
@@ -422,6 +424,14 @@ static guint xfce_rc_style_parse(GtkRcStyle * rc_style, GtkSettings * settings,
                     break;
                 }
                 break;
+            case TOKEN_FLATBORDER:
+                token = theme_parse_boolean(scanner, TOKEN_FLATBORDER, &b);
+                if(token != G_TOKEN_NONE)
+                {
+                    break;
+                }
+                theme_data->flat_border = b;
+                break;
             default:
                 g_scanner_get_next_token(scanner);
                 token = G_TOKEN_RIGHT_CURLY;
@@ -460,6 +470,7 @@ static void xfce_rc_style_merge(GtkRcStyle * dest, GtkRcStyle * src)
     dest_data->gradient_style = src_data->gradient_style;
     dest_data->shade_start = src_data->shade_start;
     dest_data->shade_end = src_data->shade_end;
+    dest_data->flat_border = src_data->flat_border;
 }
 
 /* Create an empty style suitable to this RC style
diff --git a/gtk-2.0/xfce_rc_style.h b/gtk-2.0/xfce_rc_style.h
index 53566b6..c2c94e1 100644
--- a/gtk-2.0/xfce_rc_style.h
+++ b/gtk-2.0/xfce_rc_style.h
@@ -81,6 +81,7 @@ struct _XfceRcStyle
     XfceRcGradientType gradient_style;
     gfloat shade_start;
     gfloat shade_end;
+    gboolean flat_border;
 };
 
 struct _XfceRcStyleClass
@@ -109,6 +110,7 @@ enum
     TOKEN_SOUTHERN_DIAGONAL,
     TOKEN_SHADE_START,
     TOKEN_SHADE_END,
+    TOKEN_FLATBORDER,
     TOKEN_TRUE,
     TOKEN_FALSE
 };
diff --git a/gtk-2.0/xfce_theme_draw.c b/gtk-2.0/xfce_theme_draw.c
index 576cb36..a50c692 100644
--- a/gtk-2.0/xfce_theme_draw.c
+++ b/gtk-2.0/xfce_theme_draw.c
@@ -423,345 +423,234 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state
     xt = MIN(style->xthickness, width - 1);
     yt = MIN(style->ythickness, height - 1);
 
-    switch (shadow_type)
+    if (XFCE_RC_STYLE(style->rc_style)->flat_border)
     {
-        case GTK_SHADOW_NONE:
-            break;
-        case GTK_SHADOW_ETCHED_IN:
-            if ((xt > 1) && (yt > 1))
+        if ((DETAIL("spinbutton_up") || DETAIL("spinbutton_down")) && (state_type != GTK_STATE_PRELIGHT && state_type != GTK_STATE_ACTIVE))
+        {
+            /* Do nothing */
+        }
+        else if (DETAIL("menubar") || DETAIL ("handlebox_bin") || DETAIL ("handlebox") || DETAIL ("toolbar"))
+        {
+            if (yt > 0)
             {
-                gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                gdk_cairo_set_source_color(cr, &style->dark[state_type]);
                 cairo_move_to(cr, x + 0.5, y + height - 0.5);
                 cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                cairo_line_to(cr, x + width - 0.5, y + 0.5);
-                cairo_stroke(cr);
-
-                gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                cairo_move_to(cr, x + width - 1.5, y + 0.5);
-                cairo_line_to(cr, x + 0.5, y + 0.5);
-                cairo_line_to(cr, x + 0.5, y + height - 1.5);
-                cairo_stroke(cr);
-
-                gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                cairo_move_to(cr, x + width - 1.5, y + 1.5);
-                cairo_line_to(cr, x + 1.5, y + 1.5);
-                cairo_line_to(cr, x + 1.5, y + height - 1.5);
-                cairo_stroke(cr);
-
-                gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                cairo_move_to(cr, x + 1.5, y + height - 1.5);
-                cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
-                cairo_line_to(cr, x + width - 1.5, y + 1.5);
                 cairo_stroke(cr);
             }
-            else if ((xt > 0) && (yt > 0))
+        }
+        else
+        {
+            if (((xt > 0) && (yt > 0)) || DETAIL("bar") || DETAIL("trough") || DETAIL("trough-lower") || DETAIL("trough-upper"))
             {
+                if (DETAIL("trough-lower"))
+                {
+                    state_type = GTK_STATE_SELECTED;
+                }
+
                 gdk_cairo_set_source_color(cr, &style->dark[state_type]);
                 cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1);
                 cairo_stroke(cr);
-            }
-            break;
-        case GTK_SHADOW_ETCHED_OUT:
-            if ((xt > 1) && (yt > 1))
-            {
-                gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                cairo_move_to(cr, x + 0.5, y + height - 0.5);
-                cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                cairo_line_to(cr, x + width - 0.5, y + 0.5);
-                cairo_stroke(cr);
-
-                gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                cairo_move_to(cr, x + width - 1.5, y + 0.5);
-                cairo_line_to(cr, x + 0.5, y + 0.5);
-                cairo_line_to(cr, x + 0.5, y + height - 1.5);
-                cairo_stroke(cr);
 
-                gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                cairo_move_to(cr, x + width - 1.5, y + 1.5);
-                cairo_line_to(cr, x + 1.5, y + 1.5);
-                cairo_line_to(cr, x + 1.5, y + height - 1.5);
-                cairo_stroke(cr);
+                if (XFCE_RC_STYLE(style->rc_style)->smooth_edge)
+                {
+                    if (DETAIL("menu"))
+                    {
+                        /* Sharp edges */
+                    }
+                    else
+                    {
+                        if (DETAIL("bar"))
+                        {
+                            state_type = GTK_STATE_NORMAL;
+                        }
 
-                gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                cairo_move_to(cr, x + 1.5, y + height - 1.5);
-                cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
-                cairo_line_to(cr, x + width - 1.5, y + 1.5);
-                cairo_stroke(cr);
-            }
-            else if ((xt > 0) && (yt > 0))
-            {
-                gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1);
-                cairo_stroke(cr);
+                        gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                        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);
+                        cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1);
+                        cairo_fill(cr);
+                    }
+                }
             }
-            break;
-        case GTK_SHADOW_IN:
-            if (XFCE_RC_STYLE(style->rc_style)->smooth_edge)
-            {
-                if (DETAIL("trough") || DETAIL("trough-lower") || DETAIL("trough-upper"))
+        }
+    }
+    else
+    {
+        switch (shadow_type)
+        {
+            case GTK_SHADOW_NONE:
+                break;
+            case GTK_SHADOW_ETCHED_IN:
+                if ((xt > 1) && (yt > 1))
                 {
-                    gdk_cairo_set_source_color(cr, &style->bg[DETAIL("trough-lower") ? GTK_STATE_SELECTED : GTK_STATE_NORMAL]);
-                    cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1);
+                    gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                    cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                    cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                    cairo_line_to(cr, x + width - 0.5, y + 0.5);
                     cairo_stroke(cr);
 
-                    gdk_cairo_set_source_color(cr, &style->mid[GTK_STATE_NORMAL]);
-                    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);
-                    cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1);
-                    cairo_fill(cr);
-                }
-                else if ((xt > 1) && (yt > 1))
-                {
                     gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                    cairo_move_to(cr, x + 1.5, y + 0.5);
-                    cairo_line_to(cr, x + width - 1.5, y + 0.5);
-                    cairo_move_to(cr, x + 0.5, y + 1.5);
+                    cairo_move_to(cr, x + width - 1.5, y + 0.5);
+                    cairo_line_to(cr, x + 0.5, y + 0.5);
                     cairo_line_to(cr, x + 0.5, y + height - 1.5);
-
-                    cairo_move_to(cr, x + 1.5, y + height - 0.5);
-                    cairo_line_to(cr, x + width - 1.5, y + height - 0.5);
-                    cairo_move_to(cr, x + width - 0.5, y + 1.5);
-                    cairo_line_to(cr, x + width - 0.5, y + height - 1.5);
                     cairo_stroke(cr);
 
-                    gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                    gdk_cairo_set_source_color(cr, &style->light[state_type]);
                     cairo_move_to(cr, x + width - 1.5, y + 1.5);
                     cairo_line_to(cr, x + 1.5, y + 1.5);
                     cairo_line_to(cr, x + 1.5, y + height - 1.5);
                     cairo_stroke(cr);
 
-                    gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                    cairo_move_to(cr, x + 2.5, y + height - 1.5);
+                    gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                    cairo_move_to(cr, x + 1.5, y + height - 1.5);
                     cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
-                    cairo_line_to(cr, x + width - 1.5, y + 2.5);
+                    cairo_line_to(cr, x + width - 1.5, y + 1.5);
                     cairo_stroke(cr);
-
-                    gdk_cairo_set_source_color(cr, &style->mid[state_type]);
-                    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);
-                    cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1);
-                    cairo_fill(cr);
                 }
                 else if ((xt > 0) && (yt > 0))
                 {
                     gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                    cairo_move_to(cr, x + 1.5, y + 0.5);
-                    cairo_line_to(cr, x + width - 0.5, y + 0.5);
-                    cairo_move_to(cr, x + 0.5, y + 1.5);
-                    cairo_line_to(cr, x + 0.5, y + height - 0.5);
-                    cairo_stroke(cr);
-
-                    gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                    cairo_move_to(cr, x + 1.5, y + height - 0.5);
-                    cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                    cairo_line_to(cr, x + width - 0.5, y + 1.5);
-                    cairo_stroke(cr);
-
-                    gdk_cairo_set_source_color(cr, &style->mid[state_type]);
-                    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);
-                    cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1);
-                    cairo_fill(cr);
-                }
-            }
-            else
-            {
-                if (DETAIL("trough") || DETAIL("trough-lower") || DETAIL("trough-upper"))
-                {
-                    gdk_cairo_set_source_color(cr, &style->dark[DETAIL("trough-lower") ? GTK_STATE_SELECTED : GTK_STATE_ACTIVE]);
                     cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1);
                     cairo_stroke(cr);
                 }
-                else if ((xt > 1) && (yt > 1))
+                break;
+            case GTK_SHADOW_ETCHED_OUT:
+                if ((xt > 1) && (yt > 1))
                 {
                     gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                    cairo_move_to(cr, x + width - 0.5, y + 0.5);
-                    cairo_line_to(cr, x + 0.5, y + 0.5);
-                    cairo_line_to(cr, x + 0.5, y + height - 0.5);
+                    cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                    cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                    cairo_line_to(cr, x + width - 0.5, y + 0.5);
                     cairo_stroke(cr);
 
                     gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                    cairo_move_to(cr, x + 1.5, y + height - 0.5);
-                    cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                    cairo_line_to(cr, x + width - 0.5, y + 1.5);
+                    cairo_move_to(cr, x + width - 1.5, y + 0.5);
+                    cairo_line_to(cr, x + 0.5, y + 0.5);
+                    cairo_line_to(cr, x + 0.5, y + height - 1.5);
                     cairo_stroke(cr);
 
-                    gdk_cairo_set_source_color(cr, &style->black);
+                    gdk_cairo_set_source_color(cr, &style->dark[state_type]);
                     cairo_move_to(cr, x + width - 1.5, y + 1.5);
                     cairo_line_to(cr, x + 1.5, y + 1.5);
                     cairo_line_to(cr, x + 1.5, y + height - 1.5);
                     cairo_stroke(cr);
 
-                    gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                    cairo_move_to(cr, x + 2.5, y + height - 1.5);
+                    gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                    cairo_move_to(cr, x + 1.5, y + height - 1.5);
                     cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
-                    cairo_line_to(cr, x + width - 1.5, y + 2.5);
+                    cairo_line_to(cr, x + width - 1.5, y + 1.5);
                     cairo_stroke(cr);
                 }
                 else if ((xt > 0) && (yt > 0))
                 {
-                    gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                    cairo_move_to(cr, x + width - 0.5, y + 0.5);
-                    cairo_line_to(cr, x + 0.5, y + 0.5);
-                    cairo_line_to(cr, x + 0.5, y + height - 0.5);
-                    cairo_stroke(cr);
-
                     gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                    cairo_move_to(cr, x + 1.5, y + height - 0.5);
-                    cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                    cairo_line_to(cr, x + width - 0.5, y + 1.5);
-                    cairo_stroke(cr);
-                }
-            }
-            break;
-        case GTK_SHADOW_OUT:
-            if (XFCE_RC_STYLE(style->rc_style)->smooth_edge)
-            {
-                if ((DETAIL("spinbutton_up") || DETAIL("spinbutton_down")) && (state_type != GTK_STATE_PRELIGHT))
-                {
-                    /* Do nothing */
-                }
-                else if (DETAIL("bar"))
-                {
-                    gdk_cairo_set_source_color(cr, &style->dark[state_type]);
                     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]);
-                    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);
-                    cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1);
-                    cairo_fill(cr);
                 }
-                else if (DETAIL("menu"))
+                break;
+            case GTK_SHADOW_IN:
+                if (XFCE_RC_STYLE(style->rc_style)->smooth_edge)
                 {
-                    if ((xt > 0) && (yt > 0))
+                    if (DETAIL("trough") || DETAIL("trough-lower") || DETAIL("trough-upper"))
                     {
-                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                        gdk_cairo_set_source_color(cr, &style->bg[DETAIL("trough-lower") ? GTK_STATE_SELECTED : GTK_STATE_NORMAL]);
                         cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1);
                         cairo_stroke(cr);
-                    }
-                }
-                else if (DETAIL("menubar"))
-                {
-                    if ((xt > 1) && (yt > 1))
-                    {
-                        gdk_cairo_set_source_color(cr, &style->mid[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + height - 1.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 1.5);
-                        cairo_stroke(cr);
 
-                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + height - 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                        cairo_stroke(cr);
+                        gdk_cairo_set_source_color(cr, &style->mid[GTK_STATE_NORMAL]);
+                        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);
+                        cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1);
+                        cairo_fill(cr);
                     }
-                    else if ((xt > 0) && (yt > 0))
+                    else if ((xt > 1) && (yt > 1))
                     {
                         gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + height - 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                        cairo_stroke(cr);
-                    }
-                }
-                else if (DETAIL ("handlebox_bin") || DETAIL ("handlebox") || DETAIL ("toolbar"))
-                {
-                    if ((xt > 1) && (yt > 1))
-                    {
-                        gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + 0.5);
-                        cairo_stroke(cr);
+                        cairo_move_to(cr, x + 1.5, y + 0.5);
+                        cairo_line_to(cr, x + width - 1.5, y + 0.5);
+                        cairo_move_to(cr, x + 0.5, y + 1.5);
+                        cairo_line_to(cr, x + 0.5, y + height - 1.5);
 
-                        gdk_cairo_set_source_color(cr, &style->mid[state_type]);
-                        cairo_move_to(cr, x + 0.5 , y + height - 1.5);
+                        cairo_move_to(cr, x + 1.5, y + height - 0.5);
+                        cairo_line_to(cr, x + width - 1.5, y + height - 0.5);
+                        cairo_move_to(cr, x + width - 0.5, y + 1.5);
                         cairo_line_to(cr, x + width - 0.5, y + height - 1.5);
                         cairo_stroke(cr);
 
-                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + height - 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                        gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                        cairo_move_to(cr, x + width - 1.5, y + 1.5);
+                        cairo_line_to(cr, x + 1.5, y + 1.5);
+                        cairo_line_to(cr, x + 1.5, y + height - 1.5);
                         cairo_stroke(cr);
-                    }
-                    else if ((xt > 0) && (yt > 0))
-                    {
+
                         gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + 0.5);
+                        cairo_move_to(cr, x + 2.5, y + height - 1.5);
+                        cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
+                        cairo_line_to(cr, x + width - 1.5, y + 2.5);
                         cairo_stroke(cr);
 
-                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + height - 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                        cairo_stroke(cr);
+                        gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                        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);
+                        cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1);
+                        cairo_fill(cr);
                     }
-                }
-                else if (DETAIL("vscrollbar") || DETAIL("hscrollbar") || DETAIL("slider") || DETAIL("vscale") || DETAIL("hscale"))
-                {
-                    if ((xt > 1) && (yt > 1))
+                    else if ((xt > 0) && (yt > 0))
                     {
                         gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                        cairo_move_to(cr, x + width - 0.5, y + 0.5);
-                        cairo_line_to(cr, x + 0.5, y + 0.5);
+                        cairo_move_to(cr, x + 1.5, y + 0.5);
+                        cairo_line_to(cr, x + width - 0.5, y + 0.5);
+                        cairo_move_to(cr, x + 0.5, y + 1.5);
                         cairo_line_to(cr, x + 0.5, y + height - 0.5);
+                        cairo_stroke(cr);
 
+                        gdk_cairo_set_source_color(cr, &style->light[state_type]);
                         cairo_move_to(cr, x + 1.5, y + height - 0.5);
                         cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
                         cairo_line_to(cr, x + width - 0.5, y + 1.5);
                         cairo_stroke(cr);
 
-                        gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                        cairo_move_to(cr, x + width - 2.5, y + 1.5);
-                        cairo_line_to(cr, x + 1.5, y + 1.5);
-                        cairo_line_to(cr, x + 1.5, y + height - 2.5);
-                        cairo_stroke(cr);
-
                         gdk_cairo_set_source_color(cr, &style->mid[state_type]);
-                        cairo_move_to(cr, x + 1.5, y + height - 1.5);
-                        cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
-                        cairo_line_to(cr, x + width - 1.5, y + 1.5);
+                        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);
+                        cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1);
+                        cairo_fill(cr);
+                    }
+                }
+                else
+                {
+                    if (DETAIL("trough") || DETAIL("trough-lower") || DETAIL("trough-upper"))
+                    {
+                        gdk_cairo_set_source_color(cr, &style->dark[DETAIL("trough-lower") ? GTK_STATE_SELECTED : GTK_STATE_ACTIVE]);
+                        cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1);
                         cairo_stroke(cr);
                     }
-                    else if ((xt > 0) && (yt > 0))
+                    else if ((xt > 1) && (yt > 1))
                     {
-                        gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
                         cairo_move_to(cr, x + width - 0.5, y + 0.5);
                         cairo_line_to(cr, x + 0.5, y + 0.5);
                         cairo_line_to(cr, x + 0.5, y + height - 0.5);
                         cairo_stroke(cr);
 
-                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                        gdk_cairo_set_source_color(cr, &style->light[state_type]);
                         cairo_move_to(cr, x + 1.5, y + height - 0.5);
                         cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
                         cairo_line_to(cr, x + width - 0.5, y + 1.5);
                         cairo_stroke(cr);
-                    }
-                }
-                else if (DETAIL("frame"))
-                {
-                    if ((xt > 1) && (yt > 1))
-                    {
-                        gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                        cairo_move_to(cr, x + width - 1.5, y + 0.5);
-                        cairo_line_to(cr, x + 0.5, y + 0.5);
-                        cairo_line_to(cr, x + 0.5, y + height - 1.5);
-                        cairo_stroke(cr);
-
-                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + height - 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + 0.5);
-                        cairo_stroke(cr);
 
-                        gdk_cairo_set_source_color(cr, &style->bg[state_type]);
+                        gdk_cairo_set_source_color(cr, &style->black);
                         cairo_move_to(cr, x + width - 1.5, y + 1.5);
                         cairo_line_to(cr, x + 1.5, y + 1.5);
                         cairo_line_to(cr, x + 1.5, y + height - 1.5);
+                        cairo_stroke(cr);
 
+                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
                         cairo_move_to(cr, x + 2.5, y + height - 1.5);
                         cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
                         cairo_line_to(cr, x + width - 1.5, y + 2.5);
@@ -769,180 +658,347 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state
                     }
                     else if ((xt > 0) && (yt > 0))
                     {
-                        gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
                         cairo_move_to(cr, x + width - 0.5, y + 0.5);
                         cairo_line_to(cr, x + 0.5, y + 0.5);
                         cairo_line_to(cr, x + 0.5, y + height - 0.5);
                         cairo_stroke(cr);
 
-                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                        gdk_cairo_set_source_color(cr, &style->light[state_type]);
                         cairo_move_to(cr, x + 1.5, y + height - 0.5);
                         cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
                         cairo_line_to(cr, x + width - 0.5, y + 1.5);
                         cairo_stroke(cr);
                     }
                 }
-                else
+                break;
+            case GTK_SHADOW_OUT:
+                if (XFCE_RC_STYLE(style->rc_style)->smooth_edge)
                 {
-                    if ((xt > 1) && (yt > 1))
+                    if ((DETAIL("spinbutton_up") || DETAIL("spinbutton_down")) && (state_type != GTK_STATE_PRELIGHT))
                     {
-                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                        cairo_move_to(cr, x + 1.5, y + 0.5);
-                        cairo_line_to(cr, x + width - 1.5, y + 0.5);
-                        cairo_move_to(cr, x + 0.5, y + 1.5);
-                        cairo_line_to(cr, x + 0.5, y + height - 1.5);
-
-                        cairo_move_to(cr, x + 1.5, y + height - 0.5);
-                        cairo_line_to(cr, x + width - 1.5, y + height - 0.5);
-                        cairo_move_to(cr, x + width - 0.5, y + 1.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 1.5);
-                        cairo_stroke(cr);
-
-                        gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                        cairo_move_to(cr, x + width - 2.5, y + 1.5);
-                        cairo_line_to(cr, x + 1.5, y + 1.5);
-                        cairo_line_to(cr, x + 1.5, y + height - 2.5);
-                        cairo_stroke(cr);
-
-                        gdk_cairo_set_source_color(cr, &style->mid[state_type]);
-                        cairo_move_to(cr, x + 1.5, y + height - 1.5);
-                        cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
-                        cairo_line_to(cr, x + width - 1.5, y + 1.5);
-                        cairo_stroke(cr);
-
-                        gdk_cairo_set_source_color(cr, &style->mid[state_type]);
-                        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);
-                        cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1);
-                        cairo_fill(cr);
+                        /* Do nothing */
                     }
-                    else if ((xt > 0) && (yt > 0))
+                    else if (DETAIL("bar"))
                     {
-                        gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                        cairo_move_to(cr, x + 1.5, y + 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + 0.5);
-                        cairo_move_to(cr, x + 0.5, y + 1.5);
-                        cairo_line_to(cr, x + 0.5, y + height - 0.5);
-                        cairo_stroke(cr);
-
                         gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                        cairo_move_to(cr, x + 1.5, y + height - 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + 1.5);
+                        cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1);
                         cairo_stroke(cr);
 
-                        gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                        gdk_cairo_set_source_color(cr, &style->mid[GTK_STATE_NORMAL]);
                         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);
                         cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1);
                         cairo_fill(cr);
                     }
-                }
-            }
-            else
-            {
-                if ((DETAIL("spinbutton_up") || DETAIL("spinbutton_down")) && (state_type != GTK_STATE_PRELIGHT))
-                {
-                    /* Do nothing */
-                }
-                else if (DETAIL("menubar"))
-                {
-                    if ((xt > 1) && (yt > 1))
+                    else if (DETAIL("menu"))
                     {
-                        gdk_cairo_set_source_color(cr, &style->mid[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + height - 1.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 1.5);
-                        cairo_stroke(cr);
-
-                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + height - 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                        cairo_stroke(cr);
+                        if ((xt > 0) && (yt > 0))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1);
+                            cairo_stroke(cr);
+                        }
                     }
-                    else if ((xt > 0) && (yt > 0))
+                    else if (DETAIL("menubar"))
                     {
-                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + height - 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                        cairo_stroke(cr);
+                        if ((xt > 1) && (yt > 1))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + height - 1.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 1.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_stroke(cr);
+                        }
+                        else if ((xt > 0) && (yt > 0))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_stroke(cr);
+                        }
+                    }
+                    else if (DETAIL ("handlebox_bin") || DETAIL ("handlebox") || DETAIL ("toolbar"))
+                    {
+                        if ((xt > 1) && (yt > 1))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + 0.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                            cairo_move_to(cr, x + 0.5 , y + height - 1.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 1.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_stroke(cr);
+                        }
+                        else if ((xt > 0) && (yt > 0))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + 0.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_stroke(cr);
+                        }
+                    }
+                    else if (DETAIL("vscrollbar") || DETAIL("hscrollbar") || DETAIL("slider") || DETAIL("vscale") || DETAIL("hscale"))
+                    {
+                        if ((xt > 1) && (yt > 1))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + width - 0.5, y + 0.5);
+                            cairo_line_to(cr, x + 0.5, y + 0.5);
+                            cairo_line_to(cr, x + 0.5, y + height - 0.5);
+
+                            cairo_move_to(cr, x + 1.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + 1.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                            cairo_move_to(cr, x + width - 2.5, y + 1.5);
+                            cairo_line_to(cr, x + 1.5, y + 1.5);
+                            cairo_line_to(cr, x + 1.5, y + height - 2.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                            cairo_move_to(cr, x + 1.5, y + height - 1.5);
+                            cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
+                            cairo_line_to(cr, x + width - 1.5, y + 1.5);
+                            cairo_stroke(cr);
+                        }
+                        else if ((xt > 0) && (yt > 0))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                            cairo_move_to(cr, x + width - 0.5, y + 0.5);
+                            cairo_line_to(cr, x + 0.5, y + 0.5);
+                            cairo_line_to(cr, x + 0.5, y + height - 0.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 1.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + 1.5);
+                            cairo_stroke(cr);
+                        }
+                    }
+                    else if (DETAIL("frame"))
+                    {
+                        if ((xt > 1) && (yt > 1))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                            cairo_move_to(cr, x + width - 1.5, y + 0.5);
+                            cairo_line_to(cr, x + 0.5, y + 0.5);
+                            cairo_line_to(cr, x + 0.5, y + height - 1.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + 0.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->bg[state_type]);
+                            cairo_move_to(cr, x + width - 1.5, y + 1.5);
+                            cairo_line_to(cr, x + 1.5, y + 1.5);
+                            cairo_line_to(cr, x + 1.5, y + height - 1.5);
+
+                            cairo_move_to(cr, x + 2.5, y + height - 1.5);
+                            cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
+                            cairo_line_to(cr, x + width - 1.5, y + 2.5);
+                            cairo_stroke(cr);
+                        }
+                        else if ((xt > 0) && (yt > 0))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                            cairo_move_to(cr, x + width - 0.5, y + 0.5);
+                            cairo_line_to(cr, x + 0.5, y + 0.5);
+                            cairo_line_to(cr, x + 0.5, y + height - 0.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 1.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + 1.5);
+                            cairo_stroke(cr);
+                        }
+                    }
+                    else
+                    {
+                        if ((xt > 1) && (yt > 1))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 1.5, y + 0.5);
+                            cairo_line_to(cr, x + width - 1.5, y + 0.5);
+                            cairo_move_to(cr, x + 0.5, y + 1.5);
+                            cairo_line_to(cr, x + 0.5, y + height - 1.5);
+
+                            cairo_move_to(cr, x + 1.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 1.5, y + height - 0.5);
+                            cairo_move_to(cr, x + width - 0.5, y + 1.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 1.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                            cairo_move_to(cr, x + width - 2.5, y + 1.5);
+                            cairo_line_to(cr, x + 1.5, y + 1.5);
+                            cairo_line_to(cr, x + 1.5, y + height - 2.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                            cairo_move_to(cr, x + 1.5, y + height - 1.5);
+                            cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
+                            cairo_line_to(cr, x + width - 1.5, y + 1.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                            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);
+                            cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1);
+                            cairo_fill(cr);
+                        }
+                        else if ((xt > 0) && (yt > 0))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                            cairo_move_to(cr, x + 1.5, y + 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + 0.5);
+                            cairo_move_to(cr, x + 0.5, y + 1.5);
+                            cairo_line_to(cr, x + 0.5, y + height - 0.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 1.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + 1.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                            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);
+                            cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1);
+                            cairo_fill(cr);
+                        }
                     }
                 }
-                else if (DETAIL ("handlebox_bin") || DETAIL ("handlebox") || DETAIL ("toolbar"))
+                else
                 {
-                    if ((xt > 1) && (yt > 1))
+                    if ((DETAIL("spinbutton_up") || DETAIL("spinbutton_down")) && (state_type != GTK_STATE_PRELIGHT))
                     {
-                        gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + 0.5);
+                        /* Do nothing */
+                    }
+                    else if (DETAIL("menubar"))
+                    {
+                        if ((xt > 1) && (yt > 1))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + height - 1.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 1.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_stroke(cr);
+                        }
+                        else if ((xt > 0) && (yt > 0))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_stroke(cr);
+                        }
+                    }
+                    else if (DETAIL ("handlebox_bin") || DETAIL ("handlebox") || DETAIL ("toolbar"))
+                    {
+                        if ((xt > 1) && (yt > 1))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + 0.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->mid[state_type]);
+                            cairo_move_to(cr, x + 0.5 , y + height - 1.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 1.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_stroke(cr);
+                        }
+                        else if ((xt > 0) && (yt > 0))
+                        {
+                            gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + 0.5);
+                            cairo_stroke(cr);
+
+                            gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                            cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                            cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                            cairo_stroke(cr);
+                        }
+                    }
+                    else if ((xt > 1) && (yt > 1))
+                    {
+                        gdk_cairo_set_source_color(cr, &style->dark[state_type]);
+                        cairo_move_to(cr, x + width - 0.5, y + 0.5);
+                        cairo_line_to(cr, x + 0.5, y + 0.5);
+                        cairo_line_to(cr, x + 0.5, y + height - 0.5);
                         cairo_stroke(cr);
 
-                        gdk_cairo_set_source_color(cr, &style->mid[state_type]);
-                        cairo_move_to(cr, x + 0.5 , y + height - 1.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 1.5);
+                        gdk_cairo_set_source_color(cr, &style->black);
+                        cairo_move_to(cr, x + 1.5, y + height - 0.5);
+                        cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                        cairo_line_to(cr, x + width - 0.5, y + 1.5);
+                        cairo_stroke(cr);
+
+                        gdk_cairo_set_source_color(cr, &style->light[state_type]);
+                        cairo_move_to(cr, x + width - 1.5, y + 1.5);
+                        cairo_line_to(cr, x + 1.5, y + 1.5);
+                        cairo_line_to(cr, x + 1.5, y + height - 1.5);
                         cairo_stroke(cr);
 
                         gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + height - 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                        cairo_move_to(cr, x + 2.5, y + height - 1.5);
+                        cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
+                        cairo_line_to(cr, x + width - 1.5, y + 2.5);
                         cairo_stroke(cr);
                     }
                     else if ((xt > 0) && (yt > 0))
                     {
                         gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + 0.5);
-                        cairo_line_to(cr, x + width - 0.5, y + 0.5);
+                        cairo_move_to(cr, x + width - 0.5, y + 0.5);
+                        cairo_line_to(cr, x + 0.5, y + 0.5);
+                        cairo_line_to(cr, x + 0.5, y + height - 0.5);
                         cairo_stroke(cr);
 
                         gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                        cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                        cairo_move_to(cr, x + 1.5, y + height - 0.5);
                         cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                        cairo_line_to(cr, x + width - 0.5, y + 1.5);
                         cairo_stroke(cr);
                     }
                 }
-                else if ((xt > 1) && (yt > 1))
-                {
-                    gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                    cairo_move_to(cr, x + width - 0.5, y + 0.5);
-                    cairo_line_to(cr, x + 0.5, y + 0.5);
-                    cairo_line_to(cr, x + 0.5, y + height - 0.5);
-                    cairo_stroke(cr);
-
-                    gdk_cairo_set_source_color(cr, &style->black);
-                    cairo_move_to(cr, x + 1.5, y + height - 0.5);
-                    cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                    cairo_line_to(cr, x + width - 0.5, y + 1.5);
-                    cairo_stroke(cr);
-
-                    gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                    cairo_move_to(cr, x + width - 1.5, y + 1.5);
-                    cairo_line_to(cr, x + 1.5, y + 1.5);
-                    cairo_line_to(cr, x + 1.5, y + height - 1.5);
-                    cairo_stroke(cr);
-
-                    gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                    cairo_move_to(cr, x + 2.5, y + height - 1.5);
-                    cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
-                    cairo_line_to(cr, x + width - 1.5, y + 2.5);
-                    cairo_stroke(cr);
-                }
-                else if ((xt > 0) && (yt > 0))
-                {
-                    gdk_cairo_set_source_color(cr, &style->light[state_type]);
-                    cairo_move_to(cr, x + width - 0.5, y + 0.5);
-                    cairo_line_to(cr, x + 0.5, y + 0.5);
-                    cairo_line_to(cr, x + 0.5, y + height - 0.5);
-                    cairo_stroke(cr);
-
-                    gdk_cairo_set_source_color(cr, &style->dark[state_type]);
-                    cairo_move_to(cr, x + 1.5, y + height - 0.5);
-                    cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
-                    cairo_line_to(cr, x + width - 0.5, y + 1.5);
-                    cairo_stroke(cr);
-                }
-            }
-            break;
+                break;
+        }
     }
 
     cairo_destroy(cr);


More information about the Xfce4-commits mailing list