[gtk+] stack: Queue a resize/allocate when switching children



commit b6b00c31d7f0eace34f8ea75b75adf1983e108fe
Author: Benjamin Otte <otte redhat com>
Date:   Wed Nov 4 19:11:14 2015 +0100

    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 files changed, 5 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkstack.c b/gtk/gtkstack.c
index 2f8b0f0..edce6f4 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]);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]