+2007-02-18 Matthew Allum <mallum@openedhand.com>
+
+ * clutter/clutter-actor.c: (clutter_actor_reparent):
+ Add a FIXME re calling clutter_group here.
+ * clutter/clutter-group.c:
+ Fix clutter_group_remove_all
+
2007-02-15 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-group.h:
old_parent = self->priv->parent_actor;
g_object_ref (self);
+ /* FIXME: below assumes only groups can reparent
+ */
clutter_group_remove (CLUTTER_GROUP (self->priv->parent_actor), self);
clutter_group_add (CLUTTER_GROUP (new_parent), self);
g_object_unref (self);
void
clutter_group_remove_all (ClutterGroup *self)
{
- GList *l;
+ GList *child_item, *next;
g_return_if_fail (CLUTTER_IS_GROUP (self));
- for (l = self->priv->children; l != NULL; l = l->next)
- {
- ClutterActor *child = l->data;
+ if ((child_item = self->priv->children) == NULL)
+ return;
- clutter_group_remove (self, child);
+ do
+ {
+ next = g_list_next(child_item);
+ clutter_group_remove (self, CLUTTER_ACTOR(child_item->data));
}
+ while ((child_item = next) != NULL);
}
/**