stack: Make the child meta work without stack
authorMatthias Clasen <mclasen@redhat.com>
Fri, 8 Feb 2019 13:22:35 +0000 (08:22 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 8 Feb 2019 13:22:35 +0000 (08:22 -0500)
We have tests that expect this to work, like defaultvalue.

gtk/gtkstack.c

index 7ac18bfc798baf0cfbc26d28d6abb9952a280313..75bcc690596a399e5cf96928b7700499bf7a67dc 100644 (file)
@@ -220,8 +220,6 @@ gtk_stack_page_get_property (GObject      *object,
                              GParamSpec   *pspec)
 {
   GtkStackPage *info = GTK_STACK_PAGE (object);
-  GtkWidget *stack = gtk_widget_get_parent (GTK_WIDGET (info->widget));
-  GtkStackPrivate *priv = gtk_stack_get_instance_private (GTK_STACK (stack));
 
   switch (property_id)
     {
@@ -242,7 +240,15 @@ gtk_stack_page_get_property (GObject      *object,
       break;
 
     case CHILD_PROP_POSITION:
-      g_value_set_int (value, g_list_index (priv->children, info));
+      if (info->widget)
+        {
+          GtkWidget *stack = gtk_widget_get_parent (GTK_WIDGET (info->widget));
+          GtkStackPrivate *priv = gtk_stack_get_instance_private (GTK_STACK (stack));
+
+          g_value_set_int (value, g_list_index (priv->children, info));
+        }
+      else
+        g_value_set_int (value, 0);
       break;
 
     case CHILD_PROP_NEEDS_ATTENTION: