File clutter-Warn-on-adding-removing.patch of Package clutter

From c6e40de500534df321d2150229a16215054fce38 Mon Sep 17 00:00:00 2001
From: Emmanuele Bassi <ebassi@gnome.org>
Date: Tue, 29 Mar 2016 15:04:50 +0100
Subject: actor: Warn on adding/removing itself as a child

ClutterActor should warn if a user tries to add or remove an actor to,
and from, itself on the scene graph.

Clutter will likely crash, or warn way down the line, but if we can make
debugging simpler then we should.
---
 clutter/clutter-actor.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c
index d966e40..fedcbfe 100644
--- a/clutter/clutter-actor.c
+++ b/clutter/clutter-actor.c
@@ -4198,6 +4198,13 @@ clutter_actor_remove_child_internal (ClutterActor                 *self,
   gboolean stop_transitions;
   GObject *obj;
 
+  if (self == child)
+    {
+      g_warning ("Cannot remove actor '%s' from itself.",
+                 _clutter_actor_get_debug_name (self));
+      return;
+    }
+
   destroy_meta = (flags & REMOVE_CHILD_DESTROY_META) != 0;
   emit_parent_set = (flags & REMOVE_CHILD_EMIT_PARENT_SET) != 0;
   emit_actor_removed = (flags & REMOVE_CHILD_EMIT_ACTOR_REMOVED) != 0;
@@ -12777,6 +12784,13 @@ clutter_actor_add_child_internal (ClutterActor              *self,
   ClutterActor *old_first_child, *old_last_child;
   GObject *obj;
 
+  if (self == child)
+    {
+      g_warning ("Cannot add the actor '%s' to itself.",
+                  _clutter_actor_get_debug_name (self));
+      return;
+    }
+
   if (child->priv->parent != NULL)
     {
       g_warning ("The actor '%s' already has a parent, '%s'. You must "
-- 
cgit v0.12


openSUSE Build Service is sponsored by