[gtk+] Paint GtkFrame background correctly when there is a label



commit 70a5718b155d5342444e056b2f3b01cbe501a741
Author: Paolo Borelli <pborelli gnome org>
Date:   Sun Dec 23 16:34:27 2012 +0100

    Paint GtkFrame background correctly when there is a label

 gtk/gtkframe.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/gtk/gtkframe.c b/gtk/gtkframe.c
index fb62cc7..9b81631 100644
--- a/gtk/gtkframe.c
+++ b/gtk/gtkframe.c
@@ -689,8 +689,6 @@ gtk_frame_draw (GtkWidget *widget,
   width = priv->child_allocation.width + padding.left + padding.right;
   height =  priv->child_allocation.height + padding.top + padding.bottom;
 
-  gtk_render_background (context, cr, x, y, width, height);
-
   if (priv->shadow_type != GTK_SHADOW_NONE)
     {
       if (priv->label_widget)
@@ -710,6 +708,9 @@ gtk_frame_draw (GtkWidget *widget,
           height += height_extra;
 
           x2 = padding.left + (priv->child_allocation.width - priv->label_allocation.width - 2 * LABEL_PAD - 2 * LABEL_SIDE_PAD) * xalign + LABEL_SIDE_PAD;
+
+          gtk_render_background (context, cr, x, y, width, height);
+
           /* If the label is completely over or under the frame we can omit the gap */
           if (priv->label_yalign == 0.0 || priv->label_yalign == 1.0)
             gtk_render_frame (context, cr, x, y, width, height);
@@ -720,7 +721,14 @@ gtk_frame_draw (GtkWidget *widget,
                                   x2 + priv->label_allocation.width + 2 * LABEL_PAD);
         }
       else
-        gtk_render_frame (context, cr, x, y, width, height);
+        {
+          gtk_render_background (context, cr, x, y, width, height);
+          gtk_render_frame (context, cr, x, y, width, height);
+        }
+    }
+  else
+    {
+      gtk_render_background (context, cr, x, y, width, height);
     }
 
   GTK_WIDGET_CLASS (gtk_frame_parent_class)->draw (widget, cr);



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