{
animationFinished = true; // The actor-thread should be notified of this
- if (mEndAction == Dali::Animation::Bake)
+ if( mEndAction != Dali::Animation::Discard )
{
+ if( mEndAction == Dali::Animation::BakeFinal )
+ {
+ mElapsedSeconds = mDurationSeconds + Math::MACHINE_EPSILON_1; // Force animation to reach it's end
+ }
UpdateAnimators(bufferIndex, true/*bake the final result*/);
}
{
if (mState == Playing || mState == Paused)
{
- if (mDestroyAction == Dali::Animation::Bake)
+ if (mDestroyAction != Dali::Animation::Discard)
{
UpdateAnimators(bufferIndex, true/*bake the final result*/);
}
const bool animationFinished(mState == Playing && mElapsedSeconds > mDurationSeconds);
- UpdateAnimators(bufferIndex, animationFinished && (mEndAction == Dali::Animation::Bake));
+ UpdateAnimators(bufferIndex, animationFinished && (mEndAction != Dali::Animation::Discard));
if (animationFinished)
{