X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Flayouts%2Flayout-engine.cpp;h=695d950a69e59f5e966f3f1e49e767b34728b129;hb=094ca4278df850c7870382c3896476a1bd1c9b7b;hp=b27f6349ca64ed687b15d30156f970c815874202;hpb=b65eaebffecede94f9c089f40448a499ab516f0c;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 b27f634..695d950 100644 --- a/dali-toolkit/internal/text/layouts/layout-engine.cpp +++ b/dali-toolkit/internal/text/layouts/layout-engine.cpp @@ -36,6 +36,12 @@ namespace Toolkit { namespace Text { +float GetLineHeight(const LineRun lineRun) +{ + // The line height is the addition of the line ascender, the line descender and the line spacing. + // However, the line descender has a negative value, hence the subtraction. + return lineRun.ascender - lineRun.descender + lineRun.lineSpacing; +} namespace Layout { namespace @@ -1275,7 +1281,7 @@ struct Engine::Impl layoutSize.width = layoutParameters.boundingBox.width; if(layoutSize.height < Math::MACHINE_EPSILON_1000) { - layoutSize.height += (lineRun->ascender + -lineRun->descender) + lineRun->lineSpacing; + layoutSize.height += GetLineHeight(*lineRun); } const Vector& bidirectionalLinesInfo = layoutParameters.textModel->mLogicalModel->mBidirectionalLineInfo; @@ -1382,7 +1388,7 @@ struct Engine::Impl layoutSize.width = lineRun.width; } - layoutSize.height += (lineRun.ascender + -lineRun.descender) + lineRun.lineSpacing; + layoutSize.height += GetLineHeight(lineRun); } /** @@ -1433,7 +1439,7 @@ struct Engine::Impl lineRun.lineSpacing += mDefaultLineSpacing; - layoutSize.height += (lineRun.ascender + -lineRun.descender) + lineRun.lineSpacing; + layoutSize.height += GetLineHeight(lineRun); } /** @@ -1457,7 +1463,7 @@ struct Engine::Impl layoutSize.width = line.width; } - layoutSize.height += (line.ascender + -line.descender) + line.lineSpacing; + layoutSize.height += GetLineHeight(line); } }