From d40c496e6eacb9f95c2b27eaebf58d320c2b9387 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 14 Jun 2012 20:06:39 +0200 Subject: [PATCH] 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 file changed, 9 insertions(+), 5 deletions(-) diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c index 14f3efc8f4..e32b1b70ea 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;