[gtk+] toolbar: draw a full box for separators



commit 9d8a32b07d91be371cb021ad55f44742776ec753
Author: Jonh Wendell <jonh wendell intel com>
Date:   Mon Dec 2 16:32:54 2013 -0200

    toolbar: draw a full box for separators
    
    This allows themes do whatever they want as separators, with
    paddings, borders and backgrounds.
    
    If "wide-separators" property is true, then, instead of just draw
    a frame, also render its background, and take into account the
    padding property for its limits.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=719713

 gtk/gtktoolbar.c |   34 ++++++++++++++++++++++++----------
 1 files changed, 24 insertions(+), 10 deletions(-)
---
diff --git a/gtk/gtktoolbar.c b/gtk/gtktoolbar.c
index c6b8dd3..46c4ca1 100644
--- a/gtk/gtktoolbar.c
+++ b/gtk/gtktoolbar.c
@@ -3608,11 +3608,18 @@ _gtk_toolbar_paint_space_line (GtkWidget           *widget,
                             NULL);
 
       if (wide_separators)
-        gtk_render_frame (context, cr,
-                          (width - separator_width) / 2,
-                          height * start_fraction,
-                          separator_width,
-                          height * (end_fraction - start_fraction));
+        {
+          gtk_render_background (context, cr,
+                                 (width - separator_width) / 2,
+                                 padding.top,
+                                 separator_width,
+                                 height - padding.bottom);
+          gtk_render_frame (context, cr,
+                            (width - separator_width) / 2,
+                            padding.top,
+                            separator_width,
+                            height - padding.bottom);
+        }
       else
         gtk_render_line (context, cr,
                          (width - padding.left) / 2,
@@ -3631,11 +3638,18 @@ _gtk_toolbar_paint_space_line (GtkWidget           *widget,
                             NULL);
 
       if (wide_separators)
-        gtk_render_frame (context, cr,
-                          width * start_fraction,
-                          (height - separator_height) / 2,
-                          width * (end_fraction - start_fraction),
-                          separator_height);
+        {
+          gtk_render_background (context, cr,
+                                 padding.left,
+                                 (height - separator_height) / 2,
+                                 width - padding.right,
+                                 separator_height);
+          gtk_render_frame (context, cr,
+                            padding.left,
+                            (height - separator_height) / 2,
+                            width - padding.right,
+                            separator_height);
+        }
       else
         gtk_render_line (context, cr,
                          width * start_fraction,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]