[gtk+/composite-templates] image: background and border should be drawn around the widget



commit 7e9dab8a90d3584a596d7d72a0d419bbb24fa08e
Author: Benjamin Otte <otte redhat com>
Date:   Thu Jun 14 20:06:39 2012 +0200

    image: background and border should be drawn around the widget
    
    ... not around the contents. If you want the widget to not be larger
    than the contents, don't use ALIGN_FILL.

 gtk/gtkimage.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)
---
diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c
index 14f3efc..e32b1b7 100644
--- a/gtk/gtkimage.c
+++ b/gtk/gtkimage.c
@@ -1384,6 +1384,13 @@ gtk_image_draw (GtkWidget *widget,
 
   context = gtk_widget_get_style_context (widget);
 
+  gtk_render_background (context, cr,
+                         0, 0,
+                         gtk_widget_get_allocated_width (widget), gtk_widget_get_allocated_height (widget));
+  gtk_render_frame (context, cr,
+                    0, 0,
+                    gtk_widget_get_allocated_width (widget), gtk_widget_get_allocated_height (widget));
+
   gtk_misc_get_alignment (misc, &xalign, &yalign);
   gtk_image_get_preferred_size (image, &width, &height);
   _gtk_misc_get_padding_and_border (misc, &border);
@@ -1391,11 +1398,8 @@ gtk_image_draw (GtkWidget *widget,
   if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_LTR)
     xalign = 1.0 - xalign;
 
-  x = floor ((gtk_widget_get_allocated_width (widget) - width) * xalign);
-  y = floor ((gtk_widget_get_allocated_height (widget) - height) * yalign);
-
-  gtk_render_background (context, cr, x, y, width, height);
-  gtk_render_frame (context, cr, x, y, width, height);
+  x = floor ((gtk_widget_get_allocated_width (widget) - width) * xalign) + border.left;
+  y = floor ((gtk_widget_get_allocated_height (widget) - height) * yalign) + border.top;
 
   x += border.left;
   y += border.top;



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