From: seungho Date: Mon, 12 Jul 2021 05:16:58 +0000 (+0900) Subject: Fix to do not remove entity inside loop.(Transition) X-Git-Tag: dali_2.0.36~4^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=39df5492a857bbd94d76cdf125d8361378fd4ad1 Fix to do not remove entity inside loop.(Transition) - Fix a problem caused by removing entity inside loop Change-Id: Id12c66ec287c451451005c3c2d0d33b570d4c984 Signed-off-by: seungho --- diff --git a/dali-toolkit/internal/transition/transition-base-impl.cpp b/dali-toolkit/internal/transition/transition-base-impl.cpp index 241eb06..ca34d77 100644 --- a/dali-toolkit/internal/transition/transition-base-impl.cpp +++ b/dali-toolkit/internal/transition/transition-base-impl.cpp @@ -219,10 +219,11 @@ void TransitionBase::CopyTarget() { mCopiedActor = Dali::Actor::New(); mTarget.GetParent().Add(mCopiedActor); + mCopiedActor[Dali::DevelActor::Property::SIBLING_ORDER] = static_cast(mTarget[Dali::DevelActor::Property::SIBLING_ORDER]) + 1; - for(uint32_t i = 0; i < mTarget.GetChildCount(); ++i) + while(mTarget.GetChildCount() > 0) { - Dali::Actor child = mTarget.GetChildAt(i); + Dali::Actor child = mTarget.GetChildAt(0); Dali::DevelActor::SwitchParent(child, mCopiedActor); } @@ -238,9 +239,9 @@ void TransitionBase::TransitionFinished() mTarget.SetProperties(mOriginalPropertyMap); if(mMoveTargetChildren) { - for(uint32_t i = 0; i < mCopiedActor.GetChildCount(); ++i) + while(mCopiedActor.GetChildCount() > 0) { - Dali::Actor child = mCopiedActor.GetChildAt(i); + Dali::Actor child = mCopiedActor.GetChildAt(0); Dali::DevelActor::SwitchParent(child, mTarget); } mCopiedActor.Unparent();