From: Adeel Kazmi Date: Mon, 5 Jun 2017 10:17:12 +0000 (+0000) Subject: Merge "Text scroll animation bug fix" into devel/master X-Git-Tag: dali_1.2.43~8 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=abf49ea18cacb9cee85e0253873578775981c5ca;hp=003fe1b0cb2900bd60063649e46fbbbb6e7d997d Merge "Text scroll animation bug fix" into devel/master --- diff --git a/dali-toolkit/internal/text/text-scroller.cpp b/dali-toolkit/internal/text/text-scroller.cpp index 7d9933d..3419e99 100644 --- a/dali-toolkit/internal/text/text-scroller.cpp +++ b/dali-toolkit/internal/text/text-scroller.cpp @@ -310,6 +310,8 @@ void TextScroller::StopScrolling() case DevelTextLabel::AutoScrollStopMode::IMMEDIATE: { mScrollAnimation.Stop(); + CleanUp(); + mScrollerInterface.ScrollingFinished(); break; } case DevelTextLabel::AutoScrollStopMode::FINISH_LOOP: @@ -319,7 +321,7 @@ void TextScroller::StopScrolling() } default: { - DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Undifined AutoScrollStopMode\n" ); + DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Undifined AutoScrollStopMode\n" ); } } } @@ -363,8 +365,20 @@ void TextScroller::SetParameters( Actor sourceActor, const Size& controlSize, co CleanUp(); // If already scrolling then restart with new parameters + float animationProgress = 0.0f; + int remainedLoop = mLoopCount; if ( mScrollAnimation ) { + if( mScrollAnimation.GetState() == Animation::PLAYING ) + { + animationProgress = mScrollAnimation.GetCurrentProgress(); + + if( mLoopCount > 0 ) // If not a ininity loop, then calculate remained loop + { + remainedLoop = mLoopCount - ( mScrollAnimation.GetCurrentLoop() ); + remainedLoop = ( remainedLoop <= 0 ? 1 : remainedLoop ); + } + } mScrollAnimation.Clear(); } @@ -439,7 +453,8 @@ void TextScroller::SetParameters( Actor sourceActor, const Size& controlSize, co scrollAmount = -scrollAmount; // reverse direction of scrollung } - StartScrolling( scrollAmount, scrollDuration, mLoopCount ); + StartScrolling( scrollAmount, scrollDuration, remainedLoop ); + mScrollAnimation.SetCurrentProgress(animationProgress); } void TextScroller::AutoScrollAnimationFinished( Dali::Animation& animation )