X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.cpp;h=47afc968a71b5498bee9667c65a1178de6b56e1c;hp=41344acd46acd759084755f5c629bfdc5dd25619;hb=766fdcbec7da7e0bcdc4964c56211b195b257c16;hpb=0b168b2809db16cbcc82378fd4b031ba3fde3113;ds=sidebyside diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index 41344ac..47afc96 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -670,11 +670,24 @@ bool Controller::Relayout( const Size& size ) // Do not re-do any operation until something changes. mImpl->mOperationsPending = NO_OPERATION; + // Keep the current offset and alignment as it will be used to update the decorator's positions. + Vector2 offset; + if( mImpl->mEventData ) + { + offset = mImpl->mAlignmentOffset + mImpl->mEventData->mScrollPosition; + } + // After doing the text layout, the alignment offset to place the actor in the desired position can be calculated. CalculateTextAlignment( size ); if( mImpl->mEventData ) { + // If there is a nex size, the scroll position needs to be clamped. + mImpl->ClampHorizontalScroll( layoutSize ); + + // Update the decorator's positions. + mImpl->mEventData->mDecorator->UpdatePositions( mImpl->mAlignmentOffset + mImpl->mEventData->mScrollPosition - offset ); + // Move the cursor, grab handle etc. updated = mImpl->ProcessInputEvents() || updated; }