From 1b2e9124f0bd7fde11e2b6faad6e75c38da1abe1 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Tue, 15 Jun 2010 14:27:12 -0400 Subject: [PATCH] Fixed negative allocations from gtk_box_size_allocate() Fixed the allocation loop to check if it was allocated at least enough space to hold its visible children before going and distributing extra space among children. Fixes bgo #617444. --- gtk/gtkbox.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gtk/gtkbox.c b/gtk/gtkbox.c index f16b7c4344..c506fedf89 100644 --- a/gtk/gtkbox.c +++ b/gtk/gtkbox.c @@ -517,7 +517,6 @@ gtk_box_size_allocate (GtkWidget *widget, */ /* Sort descending by gap and position. */ - g_qsort_with_data (spreading, nvis_children, sizeof (GtkBoxSpreading), gtk_box_compare_gap, sizes); @@ -525,7 +524,7 @@ gtk_box_size_allocate (GtkWidget *widget, /* Distribute available space. * This master piece of a loop was conceived by Behdad Esfahbod. */ - for (i = nvis_children - 1; i >= 0; --i) + for (i = nvis_children - 1; size > 0 && i >= 0; --i) { /* Divide remaining space by number of remaining children. * Sort order and reducing remaining space by assigned space @@ -1061,7 +1060,7 @@ gtk_box_compute_size_for_opposing_orientation (GtkBox *box, /* Distribute available space. * This master piece of a loop was conceived by Behdad Esfahbod. */ - for (i = nvis_children - 1; i >= 0; --i) + for (i = nvis_children - 1; size > 0 && i >= 0; --i) { /* Divide remaining space by number of remaining children. * Sort order and reducing remaining space by assigned space