summaryrefslogtreecommitdiff
path: root/gtk/gtktable.c
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>2002-02-13 05:48:56 +0000
committerTim Janik <timj@src.gnome.org>2002-02-13 05:48:56 +0000
commitaa18bbf0ed32e33aa935e306fd2dc78742abec2f (patch)
treeded840d974f5f5d9d534757e71307073a601425d /gtk/gtktable.c
parenta9a06ee44e440522eaa56d4f4f300ffe91a5083d (diff)
downloadgdk-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.c67
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