diff --git a/gtk/gtksizegroup.c b/gtk/gtksizegroup.c index 3eddc1fddb..a6e0d1f600 100644 --- a/gtk/gtksizegroup.c +++ b/gtk/gtksizegroup.c @@ -217,6 +217,9 @@ queue_resize_on_widget (GtkWidget *widget, do { + if (gtk_widget_get_resize_needed (parent)) + return; + gtk_widget_queue_resize_on_widget (parent); if (!check_siblings || _gtk_widget_get_sizegroups (parent) == NULL) @@ -268,9 +271,12 @@ static void queue_resize_on_group (GtkSizeGroup *size_group) { GtkSizeGroupPrivate *priv = size_group->priv; + GSList *list; - if (priv->widgets) - queue_resize_on_widget (priv->widgets->data, TRUE); + for (list = priv->widgets; list; list = list->next) + { + gtk_widget_queue_resize (list->data); + } } static void diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index e65045b9ac..fb8c2a202c 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -7686,6 +7686,7 @@ gtk_window_configure_event (GtkWidget *widget, priv->configure_notify_received = TRUE; gtk_widget_queue_resize (widget); + gtk_container_queue_resize_handler (GTK_CONTAINER (widget)); return TRUE; }