X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller-impl.cpp;h=94589333c0f34f7aa0ddbb629e4f44c16f263d7f;hb=469f5a14469849a28463710288da51a34a40e9da;hp=f85d410edaf22fd21d5bcdab21e5e8c08142e21b;hpb=4d763eb68b5aa2448dfc81d90fc5ce598c68c99f;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/text-controller-impl.cpp b/dali-toolkit/internal/text/text-controller-impl.cpp index f85d410..9458933 100644 --- a/dali-toolkit/internal/text/text-controller-impl.cpp +++ b/dali-toolkit/internal/text/text-controller-impl.cpp @@ -325,6 +325,8 @@ void Controller::Impl::UpdateModel( OperationsMask operationsRequired ) const Length numberOfCharacters = utf32Characters.Count(); Vector& lineBreakInfo = mLogicalModel->mLineBreakInfo; + CharacterIndex startIndex = 0u; + Length requestedNumberOfCharacters = numberOfCharacters; if( GET_LINE_BREAKS & operations ) { // Retrieves the line break info. The line break info is used to split the text in 'paragraphs' to @@ -344,6 +346,8 @@ void Controller::Impl::UpdateModel( OperationsMask operationsRequired ) wordBreakInfo.Resize( numberOfCharacters, TextAbstraction::WORD_NO_BREAK ); SetWordBreakInfo( utf32Characters, + startIndex, + requestedNumberOfCharacters, wordBreakInfo ); } @@ -363,6 +367,8 @@ void Controller::Impl::UpdateModel( OperationsMask operationsRequired ) { // Retrieves the scripts used in the text. multilanguageSupport.SetScripts( utf32Characters, + startIndex, + requestedNumberOfCharacters, scripts ); } @@ -380,6 +386,8 @@ void Controller::Impl::UpdateModel( OperationsMask operationsRequired ) scripts, fontDescriptionRuns, defaultFontId, + startIndex, + requestedNumberOfCharacters, validFonts ); } } @@ -408,23 +416,29 @@ void Controller::Impl::UpdateModel( OperationsMask operationsRequired ) SetBidirectionalInfo( utf32Characters, scripts, lineBreakInfo, + startIndex, + requestedNumberOfCharacters, bidirectionalInfo ); if( 0u != bidirectionalInfo.Count() ) { - // This paragraph has right to left text. Some characters may need to be mirrored. - // TODO: consider if the mirrored string can be stored as well. - - textMirrored = GetMirroredText( utf32Characters, - mirroredUtf32Characters, - bidirectionalInfo ); - // Only set the character directions if there is right to left characters. Vector& directions = mLogicalModel->mCharacterDirections; - directions.Resize( numberOfCharacters ); - GetCharactersDirection( bidirectionalInfo, + numberOfCharacters, + startIndex, + requestedNumberOfCharacters, directions ); + + // This paragraph has right to left text. Some characters may need to be mirrored. + // TODO: consider if the mirrored string can be stored as well. + + textMirrored = GetMirroredText( utf32Characters, + directions, + bidirectionalInfo, + startIndex, + requestedNumberOfCharacters, + mirroredUtf32Characters ); } else {