X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Flogical-model-impl.cpp;h=b64ae2b7e8c2044ff3a130804d0fd12bf706383f;hp=239a2f8897a870950d77598da18a36205e0f60ae;hb=24d1c5037a28d3b8e9094dbb65630687e079705a;hpb=0b2e209ecfb3cedba510f53a4af58d7d8a2b3876 diff --git a/dali-toolkit/internal/text/logical-model-impl.cpp b/dali-toolkit/internal/text/logical-model-impl.cpp index 239a2f8..b64ae2b 100644 --- a/dali-toolkit/internal/text/logical-model-impl.cpp +++ b/dali-toolkit/internal/text/logical-model-impl.cpp @@ -78,21 +78,15 @@ CharacterDirection LogicalModel::GetCharacterDirection( CharacterIndex character return *( mCharacterDirections.Begin() + characterIndex ); } -void LogicalModel::SetVisualToLogicalMap( const BidirectionalLineInfoRun* const bidirectionalInfo, - Length numberOfRuns, - CharacterIndex startIndex, +void LogicalModel::SetVisualToLogicalMap( CharacterIndex startIndex, Length numberOfCharacters ) { mVisualToLogicalMap.Resize( numberOfCharacters ); - mLogicalToVisualMap.Resize( numberOfCharacters ); - - const Length numberOfCharactersPlus = numberOfCharacters + 1u; - mVisualToLogicalCursorMap.Resize( numberOfCharactersPlus ); CharacterIndex* modelVisualToLogicalMapBuffer = mVisualToLogicalMap.Begin(); - CharacterIndex* modelLogicalToVisualMapBuffer = mLogicalToVisualMap.Begin(); - CharacterIndex* modelVisualToLogicalCursorMap = mVisualToLogicalCursorMap.Begin(); + const BidirectionalLineInfoRun* const bidirectionalInfo = mBidirectionalLineInfo.Begin(); + const Length numberOfRuns = mBidirectionalLineInfo.Count(); CharacterIndex lastIndex = startIndex; for( unsigned int bidiIndex = 0u; bidiIndex < numberOfRuns; ++bidiIndex ) @@ -129,13 +123,11 @@ void LogicalModel::SetVisualToLogicalMap( const BidirectionalLineInfoRun* const *( modelVisualToLogicalMapBuffer + lastIndex ) = lastIndex; } - // Sets the logical to visual conversion map. - for( CharacterIndex index = startIndex; index < numberOfCharacters; ++index ) - { - *( modelLogicalToVisualMapBuffer + *( modelVisualToLogicalMapBuffer + index ) ) = index; - } - // Sets the visual to logical conversion map for cursor positions. + const Length numberOfCharactersPlusOne = numberOfCharacters + 1u; + mVisualToLogicalCursorMap.Resize( numberOfCharactersPlusOne ); + + CharacterIndex* modelVisualToLogicalCursorMap = mVisualToLogicalCursorMap.Begin(); const Length numberOfBidirectionalParagraphs = mBidirectionalParagraphInfo.Count(); BidirectionalParagraphInfoRun* bidirectionalParagraphInfoBuffer = mBidirectionalParagraphInfo.Begin(); @@ -145,7 +137,7 @@ void LogicalModel::SetVisualToLogicalMap( const BidirectionalLineInfoRun* const Length bidirectionalParagraphIndex = 0u; bool isRightToLeftParagraph = false; - for( CharacterIndex index = startIndex; index < numberOfCharactersPlus; ++index ) + for( CharacterIndex index = startIndex; index < numberOfCharactersPlusOne; ++index ) { if( bidirectionalParagraph && ( bidirectionalParagraph->characterRun.characterIndex == index ) ) @@ -307,6 +299,7 @@ void LogicalModel::RetrieveStyle( CharacterIndex index, InputStyle& style ) if( colorOverriden ) { style.textColor = ( *( colorRunsBuffer + colorIndex ) ).color; + style.isDefaultColor = false; } // Reset the run index. @@ -410,9 +403,6 @@ void LogicalModel::RetrieveStyle( CharacterIndex index, InputStyle& style ) style.size = static_cast( fontDescriptionRun.size ) / 64.f; style.sizeDefined = true; } - - // Reset the run index. - runIndex = 0u; } void LogicalModel::ClearFontDescriptionRuns()