From b6b00c31d7f0eace34f8ea75b75adf1983e108fe Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 4 Nov 2015 19:11:14 +0100 Subject: [PATCH] stack: Queue a resize/allocate when switching children We only allocate a size to the currently visible child, so we obviously need to rerun allocation when the visible child changes. In the case where the stack is not homogenous, we also need to queue a resize because our size request just changed. --- gtk/gtkstack.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gtk/gtkstack.c b/gtk/gtkstack.c index 2f8b0f0dd0..edce6f4d07 100644 --- a/gtk/gtkstack.c +++ b/gtk/gtkstack.c @@ -1145,6 +1145,11 @@ set_visible_child (GtkStack *stack, transition_type = get_simple_transition_type (i_first, transition_type); } + if (priv->hhomogeneous && priv->vhomogeneous) + gtk_widget_queue_allocate (widget); + else + gtk_widget_queue_resize (widget); + g_object_notify_by_pspec (G_OBJECT (stack), stack_props[PROP_VISIBLE_CHILD]); g_object_notify_by_pspec (G_OBJECT (stack), stack_props[PROP_VISIBLE_CHILD_NAME]);