X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Fbidirectional-support.cpp;h=c09c03c529fdcbe6f1aad4a80b1b45d3c3b72741;hp=fd85439866997f7df025ebea979790420dee0529;hb=0c9dab5dd792a612565ff091d797eb491db031a5;hpb=602711f643eed100940eb0b54c1dacacce2ae27e diff --git a/dali-toolkit/internal/text/bidirectional-support.cpp b/dali-toolkit/internal/text/bidirectional-support.cpp index fd85439..c09c03c 100644 --- a/dali-toolkit/internal/text/bidirectional-support.cpp +++ b/dali-toolkit/internal/text/bidirectional-support.cpp @@ -114,8 +114,8 @@ void SetBidirectionalInfo( const Vector& text, const ScriptRun& scriptRun = *it; const CharacterIndex lastScriptRunIndex = scriptRun.characterRun.characterIndex + scriptRun.characterRun.numberOfCharacters; - if( TextAbstraction::IsRightToLeftScript( scriptRun.script ) && // The script is right to left. - ( lastScriptRunIndex > paragraphCharacterIndex ) ) // It isn't part of a previous paragraph. + if( ( lastScriptRunIndex > paragraphCharacterIndex ) && // It isn't part of a previous paragraph. + TextAbstraction::IsRightToLeftScript( scriptRun.script ) ) // The script is right to left. { // Find the paragraphs which contains this script run. // Consider: @@ -231,8 +231,9 @@ void ReorderLines( const Vector& bidirectionalInf } bool GetMirroredText( const Vector& text, - Vector& mirroredText, - const Vector& bidirectionalInfo ) + const Vector& directions, + const Vector& bidirectionalInfo, + Vector& mirroredText ) { bool hasTextMirrored = false; @@ -242,6 +243,7 @@ bool GetMirroredText( const Vector& text, mirroredText = text; Character* mirroredTextBuffer = mirroredText.Begin(); + CharacterDirection* directionsBuffer = directions.Begin(); // Traverse the paragraphs and mirror the right to left ones. for( Vector::ConstIterator it = bidirectionalInfo.Begin(), @@ -249,10 +251,11 @@ bool GetMirroredText( const Vector& text, it != endIt; ++it ) { - const BidirectionalParagraphInfoRun& run = *it; + const BidirectionalParagraphInfoRun& paragraph = *it; - const bool tmpMirrored = bidirectionalSupport.GetMirroredText( mirroredTextBuffer + run.characterRun.characterIndex, - run.characterRun.numberOfCharacters ); + const bool tmpMirrored = bidirectionalSupport.GetMirroredText( mirroredTextBuffer + paragraph.characterRun.characterIndex, + directionsBuffer + paragraph.characterRun.characterIndex, + paragraph.characterRun.numberOfCharacters ); hasTextMirrored = hasTextMirrored || tmpMirrored; }