From 1cc88c4cf8ce7b8da715a00122d10161c6fb1ce2 Mon Sep 17 00:00:00 2001 From: Tim Janik Date: Tue, 12 Feb 2002 01:39:28 +0000 Subject: always spread out the extra space allocated for the homogeneous case, as Tue Feb 12 02:19:49 2002 Tim Janik * gtk/gtktable.c (gtk_table_size_allocate_pass1): always spread out the extra space allocated for the homogeneous case, as we don't properly deal with readjusting table allocation within it. (for this purpose, a GtkAlignment can be used as table parent). --- gtk/gtktable.c | 56 +++++++++++++++++--------------------------------------- 1 file changed, 17 insertions(+), 39 deletions(-) (limited to 'gtk/gtktable.c') diff --git a/gtk/gtktable.c b/gtk/gtktable.c index eedbb7a995..68e2fef02a 100644 --- a/gtk/gtktable.c +++ b/gtk/gtktable.c @@ -1335,27 +1335,16 @@ gtk_table_size_allocate_pass1 (GtkTable *table) if (table->homogeneous) { - nexpand = 0; - for (col = 0; col < table->ncols; col++) - if (table->cols[col].expand) - { - nexpand += 1; - break; - } + width = real_width; - if (nexpand > 0) + for (col = 0; col + 1 < table->ncols; col++) + width -= table->cols[col].spacing; + + for (col = 0; col < table->ncols; col++) { - width = real_width; - - for (col = 0; col + 1 < table->ncols; col++) - width -= table->cols[col].spacing; - - for (col = 0; col < table->ncols; col++) - { - extra = width / (table->ncols - col); - table->cols[col].allocation = MAX (1, extra); - width -= extra; - } + extra = width / (table->ncols - col); + table->cols[col].allocation = MAX (1, extra); + width -= extra; } } else @@ -1423,28 +1412,17 @@ gtk_table_size_allocate_pass1 (GtkTable *table) if (table->homogeneous) { - nexpand = 0; - for (row = 0; row < table->nrows; row++) - if (table->rows[row].expand) - { - nexpand += 1; - break; - } + height = real_height; + + for (row = 0; row + 1 < table->nrows; row++) + height -= table->rows[row].spacing; + - if (nexpand > 0) + for (row = 0; row < table->nrows; row++) { - height = real_height; - - for (row = 0; row + 1 < table->nrows; row++) - height -= table->rows[row].spacing; - - - for (row = 0; row < table->nrows; row++) - { - extra = height / (table->nrows - row); - table->rows[row].allocation = MAX (1, extra); - height -= extra; - } + extra = height / (table->nrows - row); + table->rows[row].allocation = MAX (1, extra); + height -= extra; } } else -- cgit v1.2.1