summaryrefslogtreecommitdiff
path: root/gtk/gtkstack.c
diff options
context:
space:
mode:
authorDavid King <dking@redhat.com>2013-10-07 13:46:16 +0100
committerDavid King <amigadave@amigadave.com>2013-10-08 10:55:29 +0100
commit5f611831587507ff21e481a4afbbfc13a5441344 (patch)
tree9876a6adf3400742b37d9e9e23e6bf88b7f7e24b /gtk/gtkstack.c
parent05907afc1cc05c668938cb247cbc409277c48994 (diff)
downloadgtk+-5f611831587507ff21e481a4afbbfc13a5441344.tar.gz
stack: Warn when setting a visible child which is not in the stack
https://bugzilla.gnome.org/show_bug.cgi?id=709613
Diffstat (limited to 'gtk/gtkstack.c')
-rw-r--r--gtk/gtkstack.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/gtk/gtkstack.c b/gtk/gtkstack.c
index de1ead82f7..eb2afd5de1 100644
--- a/gtk/gtkstack.c
+++ b/gtk/gtkstack.c
@@ -1341,7 +1341,11 @@ gtk_stack_set_visible_child (GtkStack *stack,
child_info = find_child_info_for_widget (stack, child);
if (child_info == NULL)
- return;
+ {
+ g_warning ("Given child of type '%s' not found in GtkStack",
+ G_OBJECT_TYPE_NAME (child));
+ return;
+ }
if (gtk_widget_get_visible (child_info->widget))
set_visible_child (stack, child_info,
@@ -1406,7 +1410,13 @@ gtk_stack_set_visible_child_full (GtkStack *stack,
}
}
- if (child_info != NULL && gtk_widget_get_visible (child_info->widget))
+ if (child_info == NULL)
+ {
+ g_warning ("Child name '%s' not found in GtkStack", name);
+ return;
+ }
+
+ if (gtk_widget_get_visible (child_info->widget))
set_visible_child (stack, child_info, transition, priv->transition_duration);
}