}
}
- if (!GTK_IS_WIDGET (widget))
- return -1;
parent_widget = gtk_widget_get_parent (widget);
- if (!GTK_IS_CONTAINER (parent_widget))
- return -1;
+ if (GTK_IS_CONTAINER (parent_widget))
+ {
+ children = gtk_container_get_children (GTK_CONTAINER (parent_widget));
+ index = g_list_index (children, widget);
+ g_list_free (children);
+ }
+ else if (GTK_IS_WIDGET (parent_widget))
+ {
+ GtkWidget *child;
- children = gtk_container_get_children (GTK_CONTAINER (parent_widget));
+ for (child = gtk_widget_get_first_child (parent_widget), index = 0; child; child = gtk_widget_get_next_sibling (child), index++)
+ {
+ if (child == widget)
+ break;
+ }
+ }
+ else
+ index = -1;
- index = g_list_index (children, widget);
- g_list_free (children);
return index;
}