Merge "Fix: The last line of the text overlaps with the text-editor's border/edge...
authorBowon Ryu <bowon.ryu@samsung.com>
Tue, 16 Nov 2021 09:27:48 +0000 (09:27 +0000)
committerGerrit Code Review <gerrit@review>
Tue, 16 Nov 2021 09:27:48 +0000 (09:27 +0000)
automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Ellipsis.cpp
dali-toolkit/internal/text/layouts/layout-engine.cpp

index 872e85e..bab8800 100755 (executable)
@@ -118,6 +118,21 @@ namespace
     const GlyphIndex     firstMiddleIndexOfGlyphs  = model->GetFirstMiddleIndexOfElidedGlyphs();
 
 
+    //Test total height of lines is fit inside Controller's size
+    Length heightOfLines = 0;
+    for(Length lineIndex=0u; lineIndex < numberOfLines; lineIndex++)
+    {
+        const LineRun& tempLine         = *( model->GetLines() + lineIndex);
+        heightOfLines+= (tempLine.ascender - tempLine.descender);
+    }
+
+    if(heightOfLines > data.size.height)
+    {
+        std::cout << "The heightOfLines should be less than height of controller.";
+        std::cout << " The heightOfLines is "<< heightOfLines << "and the height of controller is "<< data.size.height <<std::endl;
+        return false;
+    }
+
     if( numberOfLines != 0u )
     {
       Length   elidedLineIndex    = 0u;
@@ -296,6 +311,21 @@ namespace
     const GlyphIndex firstMiddleIndexOfGlyphs  = textModel->GetFirstMiddleIndexOfElidedGlyphs();
     const GlyphIndex secondMiddleIndexOfGlyphs = textModel->GetSecondMiddleIndexOfElidedGlyphs();
 
+    //Test total height of lines is fit inside Controller's size
+    Length heightOfLines = 0;
+    for(Length lineIndex=0u; lineIndex < numberOfLines; lineIndex++)
+    {
+        const LineRun& tempLine         = *( textModel->GetLines() + lineIndex);
+        heightOfLines+= (tempLine.ascender - tempLine.descender);
+    }
+
+    if(heightOfLines > data.size.height)
+    {
+        std::cout << "The heightOfLines should be less than height of controller.";
+        std::cout << " The heightOfLines is "<< heightOfLines << "and the height of controller is "<< data.size.height <<std::endl;
+        return false;
+    }
+
     if( numberOfLines != 0u )
     {
       Length   elidedLineIndex    = 0u;
index 695d950..7610b67 100644 (file)
@@ -1867,7 +1867,6 @@ struct Engine::Impl
             linesBuffer[lineIndex].ellipsis = false;
           }
           numberOfLines--;
-          lineIndex++;
         }
         linesBuffer[0u].ellipsis = true;
       }