summaryrefslogtreecommitdiff
path: root/gtk/gtkcellrendererpixbuf.c
diff options
context:
space:
mode:
authorKristian Rietveld <kris@gtk.org>2006-12-03 20:02:04 +0000
committerKristian Rietveld <kristian@src.gnome.org>2006-12-03 20:02:04 +0000
commit817d667da8732c6e9baf9d0d846e611f2136a31d (patch)
tree6224756bf2874a381e28964b121adf7024a9ad74 /gtk/gtkcellrendererpixbuf.c
parent44cac29d90b18af4b297db01d512450d9f7cc7fc (diff)
downloadgtk+-817d667da8732c6e9baf9d0d846e611f2136a31d.tar.gz
Make sure [xy]_offset are always being initialized, fix pixbuf renderer
2006-12-03 Kristian Rietveld <kris@gtk.org> Make sure [xy]_offset are always being initialized, fix pixbuf renderer padding. (#108235, Sven Neuman). * gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_get_size), (gtk_cell_renderer_pixbuf_render): add padding in _render instead of _get_size. * gtk/gtkcellrendererprogress.c (gtk_cell_renderer_progress_get_size): always initialize [xy]_offset. * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_get_size): ditto. * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_get_size): ditto.
Diffstat (limited to 'gtk/gtkcellrendererpixbuf.c')
-rw-r--r--gtk/gtkcellrendererpixbuf.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/gtk/gtkcellrendererpixbuf.c b/gtk/gtkcellrendererpixbuf.c
index 76fea367c3..1575b4cd70 100644
--- a/gtk/gtkcellrendererpixbuf.c
+++ b/gtk/gtkcellrendererpixbuf.c
@@ -548,25 +548,27 @@ gtk_cell_renderer_pixbuf_get_size (GtkCellRenderer *cell,
calc_width = (gint) cell->xpad * 2 + pixbuf_width;
calc_height = (gint) cell->ypad * 2 + pixbuf_height;
- if (x_offset) *x_offset = 0;
- if (y_offset) *y_offset = 0;
-
if (cell_area && pixbuf_width > 0 && pixbuf_height > 0)
{
if (x_offset)
{
*x_offset = (((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ?
- 1.0 - cell->xalign : cell->xalign) *
- (cell_area->width - calc_width - 2 * cell->xpad));
- *x_offset = MAX (*x_offset, 0) + cell->xpad;
+ (1.0 - cell->xalign) : cell->xalign) *
+ (cell_area->width - calc_width));
+ *x_offset = MAX (*x_offset, 0);
}
if (y_offset)
{
*y_offset = (cell->yalign *
- (cell_area->height - calc_height - 2 * cell->ypad));
- *y_offset = MAX (*y_offset, 0) + cell->ypad;
+ (cell_area->height - calc_height));
+ *y_offset = MAX (*y_offset, 0);
}
}
+ else
+ {
+ if (x_offset) *x_offset = 0;
+ if (y_offset) *y_offset = 0;
+ }
if (width)
*width = calc_width;
@@ -602,8 +604,8 @@ gtk_cell_renderer_pixbuf_render (GtkCellRenderer *cell,
&pix_rect.width,
&pix_rect.height);
- pix_rect.x += cell_area->x;
- pix_rect.y += cell_area->y;
+ pix_rect.x += cell_area->x + cell->xpad;
+ pix_rect.y += cell_area->y + cell->ypad;
pix_rect.width -= cell->xpad * 2;
pix_rect.height -= cell->ypad * 2;