X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Flayouts%2Flayout-engine.cpp;h=442b631fcfffc2e54ab112a54c05e2baf22e9dcf;hp=01a57868f488dc55c9404d4ed518dfa17575e188;hb=06e563f8a982e25a0efe2d91c794657dc8e4bc4a;hpb=ebdb9f3433e77a3e4ad7ab9f6fec5a5da108314a diff --git a/dali-toolkit/internal/text/layouts/layout-engine.cpp b/dali-toolkit/internal/text/layouts/layout-engine.cpp index 01a5786..442b631 100644 --- a/dali-toolkit/internal/text/layouts/layout-engine.cpp +++ b/dali-toolkit/internal/text/layouts/layout-engine.cpp @@ -580,7 +580,7 @@ struct LayoutEngine::Impl lineRun.numberOfGlyphs = layout.numberOfGlyphs; lineRun.characterRun.characterIndex = layout.characterIndex; lineRun.characterRun.numberOfCharacters = layout.numberOfCharacters; - if( isLastLine ) + if( isLastLine && !layoutParameters.isLastNewParagraph ) { const float width = layout.extraBearing + layout.length + layout.extraWidth + layout.wsLengthEndOfLine; if( MULTI_LINE_BOX == mLayout ) @@ -623,8 +623,36 @@ struct LayoutEngine::Impl // Increase the glyph index. index += layout.numberOfGlyphs; + + if( isLastLine && + layoutParameters.isLastNewParagraph && + ( mLayout == MULTI_LINE_BOX ) ) + { + // Need to add a new line with no characters but with height to increase the actualSize.height + const GlyphInfo& glyphInfo = *( layoutParameters.glyphsBuffer + layoutParameters.totalNumberOfGlyphs - 1u ); + + Text::FontMetrics fontMetrics; + mFontClient.GetFontMetrics( glyphInfo.fontId, fontMetrics ); + + LineRun lineRun; + lineRun.glyphIndex = 0u; + lineRun.numberOfGlyphs = 0u; + lineRun.characterRun.characterIndex = 0u; + lineRun.characterRun.numberOfCharacters = 0u; + lineRun.width = 0.f; + lineRun.ascender = fontMetrics.ascender; + lineRun.descender = fontMetrics.descender; + lineRun.extraLength = 0.f; + lineRun.alignmentOffset = 0.f; + lineRun.direction = !RTL; + lineRun.ellipsis = false; + + actualSize.height += ( lineRun.ascender + -lineRun.descender ); + + lines.PushBack( lineRun ); + } } - } + } // end for() traversing glyphs. DALI_LOG_INFO( gLogFilter, Debug::Verbose, "<--LayoutText\n\n" );