Unparented layout should disconnect all signals connected to the owner.
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / layouting / layout-group-impl.cpp
index 856ca18..bd8c68a 100644 (file)
@@ -561,6 +561,15 @@ void LayoutGroup::OnUnparent()
 {
   // Remove children
   RemoveAll();
+
+  auto control = Toolkit::Control::DownCast( GetOwner() );
+  if( control )
+  {
+    DevelActor::ChildAddedSignal( control ).Disconnect( mSlotDelegate, &LayoutGroup::ChildAddedToOwner );
+    DevelActor::ChildRemovedSignal( control ).Disconnect( mSlotDelegate, &LayoutGroup::ChildRemovedFromOwner );
+    DevelActor::ChildOrderChangedSignal( control ).Disconnect( mSlotDelegate, &LayoutGroup::ChildOrderChanged );
+    DevelHandle::PropertySetSignal( control ).Disconnect( mSlotDelegate, &LayoutGroup::OnOwnerPropertySet );
+  }
 }
 
 void LayoutGroup::RemoveChild( LayoutItem& item )