[NUI]Fix bug about Children property. 14/166514/2
authorFeng Jin <feng16.jin@samsung.com>
Wed, 10 Jan 2018 11:20:57 +0000 (19:20 +0800)
committerhuiyu eun <huiyu.eun@samsung.com>
Wed, 10 Jan 2018 12:20:01 +0000 (12:20 +0000)
Change-Id: Iae03946525ab6042379ee3320d1e6452441dfa1f
Signed-off-by: Feng Jin <feng16.jin@samsung.com>
src/Tizen.NUI/src/public/BaseComponents/View.cs
src/Tizen.NUI/src/public/Layer.cs

index 1553a426b9b4cf8b230aa3f81e5e1c1a6dc0b42f..d66053ca9633b6292550ab3cfc2db0660a513b5a 100755 (executable)
@@ -49,11 +49,18 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 4 </since_tizen>
         public override void Add(View child)
         {
-            NDalicPINVOKE.Actor_Add(swigCPtr, View.getCPtr(child));
-            if (NDalicPINVOKE.SWIGPendingException.Pending)
-                throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-
-            Children.Add(child);
+            Container oldParent = child.Parent;
+            if(oldParent != this)
+            {
+                if (oldParent != null)
+                {
+                    oldParent.Remove(child);
+                }
+                NDalicPINVOKE.Actor_Add(swigCPtr, View.getCPtr(child));
+                if (NDalicPINVOKE.SWIGPendingException.Pending)
+                    throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                Children.Add(child);
+            }
         }
 
         /// <summary>
index 3a4b84d866e4ef89a19ccbd57cc136e8b6198af0..ab65d8417c2fa9ff7b37b9817e10b28d02f0a230 100755 (executable)
@@ -49,11 +49,18 @@ namespace Tizen.NUI
         /// <since_tizen> 4 </since_tizen>
         public override void Add(View child)
         {
-            NDalicPINVOKE.Actor_Add(swigCPtr, View.getCPtr(child));
-            if (NDalicPINVOKE.SWIGPendingException.Pending)
-                throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-
-            Children.Add(child);
+            Container oldParent = child.GetParent();
+            if (oldParent != this)
+            {
+                if (oldParent != null)
+                {
+                    oldParent.Remove(child);
+                }
+                NDalicPINVOKE.Actor_Add(swigCPtr, View.getCPtr(child));
+                if (NDalicPINVOKE.SWIGPendingException.Pending)
+                    throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                Children.Add(child);
+            }
         }
 
         /// <summary>