X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Flayouts%2Flayout-engine.cpp;h=20b4de383c60d34f9c2e6f2c2de92b8a11b6c611;hb=5302f3d8e0e409242d2716078eca5a7b582fc8c8;hp=6a93d6bb704ed09c1b91337503e7525024e24e5d;hpb=5c1b715c4f0dce61a82ee5280137483d36c7e9c5;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/layouts/layout-engine.cpp b/dali-toolkit/internal/text/layouts/layout-engine.cpp index 6a93d6b..20b4de3 100755 --- a/dali-toolkit/internal/text/layouts/layout-engine.cpp +++ b/dali-toolkit/internal/text/layouts/layout-engine.cpp @@ -53,6 +53,11 @@ const float MAX_FLOAT = std::numeric_limits::max(); const bool RTL = true; const float LINE_SPACING= 0.f; +inline bool isEmptyLineAtLast( const Vector& lines, const Vector::Iterator& line ) +{ + return ( (*line).characterRun.numberOfCharacters == 0 && line + 1u == lines.End() ); +} + } //namespace /** @@ -1042,12 +1047,18 @@ struct Engine::Impl continue; } - if( line.characterRun.characterIndex >= lastCharacterPlusOne ) + if( line.characterRun.characterIndex > lastCharacterPlusOne ) { // Do not align lines beyond the last laid-out character. break; } + if( line.characterRun.characterIndex == lastCharacterPlusOne && !isEmptyLineAtLast( lines, it ) ) + { + // Do not align lines beyond the last laid-out character unless the line is last and empty. + break; + } + // Calculate the line's alignment offset accordingly with the align option, // the box width, line length, and the paragraph's direction. CalculateHorizontalAlignment( size.width,