diff options
author | Tim Janik <timj@gtk.org> | 2002-02-13 05:48:56 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 2002-02-13 05:48:56 +0000 |
commit | aa18bbf0ed32e33aa935e306fd2dc78742abec2f (patch) | |
tree | ded840d974f5f5d9d534757e71307073a601425d /gtk/gtktable.c | |
parent | a9a06ee44e440522eaa56d4f4f300ffe91a5083d (diff) | |
download | gdk-pixbuf-aa18bbf0ed32e33aa935e306fd2dc78742abec2f.tar.gz |
partly revert my recent expanding change to not expand the table if all
Wed Feb 13 06:42:37 2002 Tim Janik <timj@gtk.org>
* gtk/gtktable.c (gtk_table_size_allocate_pass1): partly revert
my recent expanding change to not expand the table if all children
have not epxand behaviour. this fixes palette views which often
use homogeneous non-expanding tables.
Diffstat (limited to 'gtk/gtktable.c')
-rw-r--r-- | gtk/gtktable.c | 67 |
1 files changed, 48 insertions, 19 deletions
diff --git a/gtk/gtktable.c b/gtk/gtktable.c index 68e2fef02..da962fb68 100644 --- a/gtk/gtktable.c +++ b/gtk/gtktable.c @@ -1335,16 +1335,30 @@ gtk_table_size_allocate_pass1 (GtkTable *table) if (table->homogeneous) { - width = real_width; - - for (col = 0; col + 1 < table->ncols; col++) - width -= table->cols[col].spacing; - - for (col = 0; col < table->ncols; col++) + if (!table->children) + nexpand = 1; + else { - extra = width / (table->ncols - col); - table->cols[col].allocation = MAX (1, extra); - width -= extra; + nexpand = 0; + for (col = 0; col < table->ncols; col++) + if (table->cols[col].expand) + { + nexpand += 1; + break; + } + } + if (nexpand) + { + 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; + } } } else @@ -1412,17 +1426,32 @@ gtk_table_size_allocate_pass1 (GtkTable *table) if (table->homogeneous) { - height = real_height; - - for (row = 0; row + 1 < table->nrows; row++) - height -= table->rows[row].spacing; - - - for (row = 0; row < table->nrows; row++) + if (!table->children) + nexpand = 1; + else + { + nexpand = 0; + for (row = 0; row < table->nrows; row++) + if (table->rows[row].expand) + { + nexpand += 1; + break; + } + } + if (nexpand) { - extra = height / (table->nrows - row); - table->rows[row].allocation = MAX (1, extra); - height -= extra; + 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; + } } } else |