[dali_2.3.21] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-internal / utc-Dali-Text-Layout.cpp
old mode 100755 (executable)
new mode 100644 (file)
index 9b71156..ef83bc0
@@ -180,11 +180,15 @@ bool LayoutTextTest(const LayoutTextData& data)
 
   layoutSize = Vector2::ZERO;
 
-  bool       isAutoScroll = false;
-  const bool updated      = engine.LayoutText(layoutParameters,
+  bool       isAutoScroll                   = false;
+  bool       isAutoScrollMaxTextureExceeded = false;
+  bool       isHiddenInputEnabled           = false;
+  const bool updated                        = engine.LayoutText(layoutParameters,
                                          layoutSize,
                                          data.ellipsis,
                                          isAutoScroll,
+                                         isAutoScrollMaxTextureExceeded,
+                                         isHiddenInputEnabled,
                                          data.ellipsisPosition);
 
   // 4) Compare the results.
@@ -306,7 +310,6 @@ bool LayoutTextTest(const LayoutTextData& data)
       Print(expectedLine);
       return false;
     }
-
     // Do not compare the alignment offset as it's not calculated in the layout.
     // Do not compare the line direction as it's not set in the layout.
   }
@@ -603,13 +606,13 @@ int UtcDaliTextLayoutSmallTextArea02(void)
   Vector<FontDescriptionRun> fontDescriptionRuns;
   fontDescriptionRuns.PushBack(fontDescriptionRun);
   Size           textArea(1.f, 1.f);
-  Size           layoutSize(81.f, 20.f);
-  float          positions[] = {0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f};
+  Size           layoutSize(79.f, 20.f);
+  float          positions[] = {0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 51.f, -9.f, 61.f, -9.f, 67.f, -13.f, 70.f, -13.f};
   struct LineRun line =
     {
       {0u, 11u},
       {0u, 11u},
-      81.f,
+      79.f,
       15.f,
       -5.f,
       0.f,
@@ -686,15 +689,17 @@ int UtcDaliTextLayoutMultilineText01(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun1);
   fontDescriptionRuns.PushBack(fontDescriptionRun2);
   Size  textArea(100.f, 300.f);
-  Size  layoutSize(98.f, 97.f);
+  Size  layoutSize(96.f, 97.f);
   float positions[] =
     {
-      0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -2.f, 45.f, -12.f, 0.f, -12.f, 8.f, -9.f, 18.f, -9.f, 27.f, -9.f, 38.f, -9.f, 47.f, -11.f, 53.f, -0.f, 0.f, -12.f, 11.f, -12.f, 15.f, -12.f, 26.f, -9.f, 36.f, -9.f, 42.f, -9.f, 53.f, -9.f, 62.f, -11.f, 68.f, -0.f, 0.f, -12.f, 4.f, -12.f, 9.f, -9.f, 18.f, -9.f, 28.f, -9.f, 36.f, -0.f, 41.f, -9.f, 51.f, -12.f, 57.f, -0.f, 62.f, -11.f, 68.f, -9.f, 78.f, -9.f, 87.f, -11.f, 94.f, -2.f};
+      0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 51.f, -9.f, 61.f, -9.f, 67.f, -13.f, 70.f, -13.f, 79.f, -0.f, 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 31.f, -9.f, 40.f, -2.f, 44.f, -12.f, 0.f, -12.f, 8.f, -9.f, 18.f, -9.f, 27.f, -9.f, 38.f, -9.f, 47.f, -11.f, 53.f, -0.f, 0.f, -12.f, 11.f, -12.f, 14.f, -12.f, 25.f, -9.f, 36.f, -9.f, 41.f, -9.f, 52.f, -9.f, 61.f, -11.f, 67.f, -0.f, 0.f, -12.f, 4.f, -12.f, 8.f, -9.f, 17.f, -9.f, 27.f, -9.f, 35.f, -0.f, 40.f, -9.f, 50.f, -12.f, 56.f, -0.f, 61.f, -11.f, 67.f, -9.f, 77.f, -9.f, 86.f, -11.f, 93.f, -2.f
+    };
+
   struct LineRun line0 =
     {
       {0u, 12u},
       {0u, 12u},
-      81.f,
+      79.f,
       15.f,
       -5.f,
       4.f,
@@ -706,7 +711,7 @@ int UtcDaliTextLayoutMultilineText01(void)
     {
       {12u, 6u},
       {12u, 6u},
-      44.f,
+      43.f,
       15.f,
       -5.f,
       0.f,
@@ -718,10 +723,10 @@ int UtcDaliTextLayoutMultilineText01(void)
     {
       {18u, 7u},
       {18u, 7u},
-      54.f,
+      53.f,
       15.f,
       -4.f,
-      6.f,
+      5.f,
       0.f,
       0.f,
       false,
@@ -730,10 +735,10 @@ int UtcDaliTextLayoutMultilineText01(void)
     {
       {25u, 9u},
       {25u, 10u},
-      68.f,
+      67.f,
       15.f,
       -4.f,
-      6.f,
+      5.f,
       0.f,
       0.f,
       false,
@@ -742,7 +747,7 @@ int UtcDaliTextLayoutMultilineText01(void)
     {
       {34u, 14u},
       {35u, 14u},
-      98.f,
+      96.f,
       15.f,
       -4.f,
       0.f,
@@ -875,102 +880,16 @@ int UtcDaliTextLayoutMultilineText02(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun4);
   fontDescriptionRuns.PushBack(fontDescriptionRun5);
   Size  textArea(100.f, 300.f);
-  Size  layoutSize(81.f, 120.f);
+  Size  layoutSize(79.f, 120.f);
   float positions[] =
-    {
-      0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, //  0 .. 11
-      0.f,
-      -13.f,
-      9.f,
-      -9.f,
-      19.f,
-      -9.f,
-      32.f,
-      -9.f,
-      41.f,
-      -0.f,
-      68.f,
-      -10.f,
-      59.f,
-      -13.f,
-      54.f,
-      -10.f,
-      45.f,
-      -10.f,
-      79.f,
-      -0.f, // 12 .. 21
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
-      0.f,
-      -10.f,
-      32.f,
-      -2.f,
-      36.f,
-      -12.f, // 22 .. 27
-      63.f,
-      -10.f,
-      54.f,
-      -13.f,
-      50.f,
-      -10.f,
-      41.f,
-      -10.f,
-      36.f,
-      -0.f,
-      27.f,
-      -10.f,
-      23.f,
-      -10.f,
-      14.f,
-      -13.f,
-      4.f,
-      -10.f,
-      0.f,
-      -0.f, // 28 .. 37
-      4.f,
-      -13.f,
-      12.f,
-      -9.f,
-      22.f,
-      -13.f,
-      26.f,
-      -13.f,
-      29.f,
-      -9.f,
-      38.f,
-      -0.f,
-      42.f,
-      -9.f,
-      54.f,
-      -9.f,
-      64.f,
-      -9.f,
-      70.f,
-      -13.f,
-      73.f,
-      -13.f,
-      0.f,
-      -0.f, // 38 .. 49
-      4.f,
-      -13.f,
-      13.f,
-      -9.f,
-      23.f,
-      -9.f,
-      36.f,
-      -9.f,
-      0.f,
-      -2.f, // 50 .. 54
-    };
+  {
+    0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 51.f, -9.f, 61.f, -9.f, 67.f, -13.f, 70.f, -13.f, 79.f, -0.f, 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 31.f, -9.f, 40.f, -0.f, 67.f, -10.f, 58.f, -13.f, 54.f, -10.f, 44.f, -10.f, 78.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 40.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, 4.f, -13.f, 12.f, -9.f, 21.f, -13.f, 25.f, -13.f, 28.f, -9.f, 37.f, -0.f, 41.f, -9.f, 53.f, -9.f, 63.f, -9.f, 69.f, -13.f, 72.f, -13.f, 0.f, -0.f, 4.f, -13.f, 13.f, -9.f, 22.f, -9.f, 35.f, -9.f, 0.f, -2.f
+  };
   struct LineRun line0 =
     {
       {0u, 12u},
       {0u, 12u},
-      81.f,
+      79.f,
       15.f,
       -5.f,
       4.f,
@@ -982,10 +901,10 @@ int UtcDaliTextLayoutMultilineText02(void)
     {
       {12u, 10u},
       {12u, 10u},
-      79.f,
+      78.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       false,
@@ -1009,34 +928,34 @@ int UtcDaliTextLayoutMultilineText02(void)
       70.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line4 =
     {
       {38u, 12u},
       {38u, 12u},
-      79.f,
+      77.f,
       15.f,
       -5.f,
       4.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line5 =
     {
       {50u, 5u},
       {50u, 5u},
-      45.f,
+      44.f,
       15.f,
       -5.f,
       0.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   Vector<LineRun> lines;
   lines.PushBack(line0);
@@ -1100,73 +1019,16 @@ int UtcDaliTextLayoutMultilineText03(void)
   Vector<FontDescriptionRun> fontDescriptionRuns;
   fontDescriptionRuns.PushBack(fontDescriptionRun);
   Size  textArea(100.f, 300.f);
-  Size  layoutSize(98.f, 60.f);
+  Size  layoutSize(96.f, 60.f);
   float positions[] =
     {
-      0.f,
-      -12.f,
-      10.f,
-      -9.f,
-      20.f,
-      -13.f,
-      24.f,
-      -13.f,
-      27.f,
-      -9.f,
-      36.f,
-      -9.f,
-      48.f,
-      -9.f,
-      58.f,
-      -9.f,
-      65.f,
-      -13.f,
-      68.f,
-      -13.f,
-      77.f,
-      -13.f,
-      86.f,
-      -9.f,
-      0.f,
-      -9.f,
-      13.f,
-      -9.f,
-      23.f,
-      -13.f,
-      31.f,
-      -9.f,
-      41.f,
-      -13.f,
-      45.f,
-      -13.f,
-      48.f,
-      -9.f,
-      57.f,
-      -9.f,
-      69.f,
-      -9.f,
-      79.f,
-      -9.f,
-      85.f,
-      -13.f,
-      88.f,
-      -13.f,
-      0.f,
-      -13.f,
-      9.f,
-      -9.f,
-      19.f,
-      -9.f,
-      32.f,
-      -9.f,
-      41.f,
-      -2.f,
+      0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -9.f, 47.f, -9.f, 57.f, -9.f, 63.f, -13.f, 66.f, -13.f, 75.f, -13.f, 84.f, -9.f, 0.f, -9.f, 13.f, -9.f, 23.f, -13.f, 31.f, -9.f, 40.f, -13.f, 44.f, -13.f, 47.f, -9.f, 56.f, -9.f, 68.f, -9.f, 78.f, -9.f, 84.f, -13.f, 87.f, -13.f, 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 31.f, -9.f, 40.f, -2.f
     };
   struct LineRun line0 =
     {
       {0u, 12u},
       {0u, 12u},
-      95.f,
+      92.f,
       15.f,
       -5.f,
       0.f,
@@ -1178,7 +1040,7 @@ int UtcDaliTextLayoutMultilineText03(void)
     {
       {12u, 12u},
       {12u, 12u},
-      98.f,
+      96.f,
       15.f,
       -5.f,
       0.f,
@@ -1190,7 +1052,7 @@ int UtcDaliTextLayoutMultilineText03(void)
     {
       {24u, 5u},
       {24u, 5u},
-      44.f,
+      43.f,
       15.f,
       -5.f,
       0.f,
@@ -1256,15 +1118,15 @@ int UtcDaliTextLayoutMultilineText04(void)
   Vector<FontDescriptionRun> fontDescriptionRuns;
   fontDescriptionRuns.PushBack(fontDescriptionRun);
   Size  textArea(100.f, 300.f);
-  Size  layoutSize(84.f, 40.f);
+  Size  layoutSize(82.f, 40.f);
   float positions[] =
     {
-      0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -2.f, 85.f, -12.f};
+      0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 51.f, -9.f, 61.f, -9.f, 67.f, -13.f, 70.f, -13.f, 79.f, -2.f, 83.f, -12.f};
   struct LineRun line0 =
     {
       {0u, 13u},
       {0u, 13u},
-      84.f,
+      82.f,
       15.f,
       -5.f,
       0.f,
@@ -1367,15 +1229,16 @@ int UtcDaliTextLayoutMultilineText05(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun2);
   fontDescriptionRuns.PushBack(fontDescriptionRun3);
   Size  textArea(100.f, 300.f);
-  Size  layoutSize(89.f, 53.f);
+  Size  layoutSize(87.f, 53.f);
   float positions[] =
     {
-      0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -14.f, 60.f, -9.f, 70.f, -9.f, 76.f, -13.f, 80.f, -13.f, 89.f, -0.f, 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -2.f};
+      0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -14.f, 59.f, -9.f, 69.f, -9.f, 75.f, -13.f, 78.f, -13.f, 87.f, -0.f, 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 31.f, -9.f, 40.f, -2.f
+    };
   struct LineRun line0 =
     {
       {0u, 12u},
       {0u, 12u},
-      89.f,
+      87.f,
       25.f,
       -8.f,
       4.f,
@@ -1387,7 +1250,7 @@ int UtcDaliTextLayoutMultilineText05(void)
     {
       {12u, 5u},
       {12u, 5u},
-      44.f,
+      43.f,
       15.f,
       -5.f,
       0.f,
@@ -1451,10 +1314,10 @@ int UtcDaliTextLayoutMultilineText06(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun);
 
   Size  textArea(64.f, 100.f);
-  Size  layoutSize(34.f, 40.f);
+  Size  layoutSize(33.f, 40.f);
   float positions[] =
     {
-      27.f, -13.f, 18.f, -10.f, 9.f, -10.f, 4.f, -10.f, 0.f, -0.f, 22.f, -10.f, 17.f, -10.f, 12.f, -10.f, 4.f, -10.f, 0.f, -10.f};
+      27.f, -13.f, 18.f, -10.f, 8.f, -10.f, 4.f, -10.f, 0.f, -0.f, 22.f, -10.f, 16.f, -10.f, 12.f, -10.f, 4.f, -10.f, 0.f, -10.f};
   struct LineRun line0 =
     {
       {0u, 5u},
@@ -1462,7 +1325,7 @@ int UtcDaliTextLayoutMultilineText06(void)
       32.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       true,
@@ -1471,7 +1334,7 @@ int UtcDaliTextLayoutMultilineText06(void)
     {
       {5u, 5u},
       {5u, 5u},
-      34.f,
+      33.f,
       15.f,
       -5.f,
       0.f,
@@ -1535,7 +1398,7 @@ int UtcDaliTextLayoutMultilineText07(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun);
 
   Size  textArea(26.f, 100.f);
-  Size  layoutSize(24.f, 60.f);
+  Size  layoutSize(23.f, 60.f);
   float positions[] =
     {
       10.f, -10.f, 4.f, -10.f, 0.f, -10.f, 13.f, -10.f, 9.f, -10.f, 0.f, -13.f, 14.f, -10.f, 4.f, -10.f, 0.f, -10.f};
@@ -1555,7 +1418,7 @@ int UtcDaliTextLayoutMultilineText07(void)
     {
       {3u, 3u},
       {3u, 3u},
-      22.f,
+      21.f,
       15.f,
       -5.f,
       0.f,
@@ -1567,7 +1430,7 @@ int UtcDaliTextLayoutMultilineText07(void)
     {
       {6u, 3u},
       {6u, 3u},
-      24.f,
+      23.f,
       15.f,
       -5.f,
       0.f,
@@ -1859,415 +1722,54 @@ int UtcDaliTextUpdateLayout01(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun16);
   fontDescriptionRuns.PushBack(fontDescriptionRun17);
   Size  textArea(100.f, 300.f);
-  Size  layoutSize(100.f, 380.f);
+  Size  layoutSize(99.f, 380.f);
   float positions[] =
     {
-      0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, //   0 ..  11
-      0.f,
-      -13.f,
-      9.f,
-      -9.f,
-      19.f,
-      -9.f,
-      32.f,
-      -9.f,
-      41.f,
-      -0.f,
-      68.f,
-      -10.f,
-      59.f,
-      -13.f,
-      54.f,
-      -10.f,
-      45.f,
-      -10.f,
+      0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 51.f, -9.f, 61.f, -9.f, 67.f, -13.f, 70.f, -13.f, 79.f, -0.f, 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 31.f, -9.f, 40.f, -0.f, 67.f, -10.f, 58.f, -13.f, 54.f, -10.f, 44.f, -10.f, 78.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, 94.f, -8.f, 89.f, -6.f, 81.f, -8.f, 77.f, -7.f, 76.f, -11.f, 71.f, -0.f, 66.f, -7.f, 65.f, -11.f, 59.f, -11.f, 53.f, -8.f, 52.f, -11.f, 46.f, -11.f, 41.f, -8.f, 37.f, -0.f, 4.f, -13.f, 12.f, -9.f, 21.f, -13.f, 25.f, -13.f, 28.f, -9.f, 0.f, -0.f, 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 38.f, -0.f, 27.f, -10.f, 18.f, -13.f, 14.f, -10.f, 4.f, -10.f, 0.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 0.f, -0.f, 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 40.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, 4.f, -13.f, 12.f, -9.f, 21.f, -13.f, 25.f, -13.f, 28.f, -9.f, 37.f, -0.f, 41.f, -9.f, 53.f, -9.f, 63.f, -9.f, 69.f, -13.f, 72.f, -13.f, 0.f, -0.f, 4.f, -13.f, 13.f, -9.f, 22.f, -9.f, 35.f, -9.f, 0.f, -2.f, 0.f, -12.f, 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 49.f, -9.f, 59.f, -9.f, 65.f, -13.f, 68.f, -13.f, 77.f, -0.f, 91.f, -8.f, 86.f, -6.f, 78.f, -8.f, 74.f, -7.f, 73.f, -11.f, 68.f, -0.f, 63.f, -7.f, 62.f, -11.f, 56.f, -11.f, 50.f, -8.f, 49.f, -11.f, 43.f, -11.f, 38.f, -8.f, 34.f, -0.f, 23.f, -10.f, 14.f, -13.f, 10.f, -10.f, 0.f, -10.f, 98.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -0.f, 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 51.f, -9.f, 61.f, -9.f, 67.f, -13.f, 70.f, -13.f, 79.f, -0.f, 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 31.f, -9.f, 40.f, -0.f, 67.f, -10.f, 58.f, -13.f, 54.f, -10.f, 44.f, -10.f, 78.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 40.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, 4.f, -13.f, 12.f, -9.f, 21.f, -13.f, 25.f, -13.f, 28.f, -9.f, 37.f, -0.f, 41.f, -9.f, 53.f, -9.f, 63.f, -9.f, 69.f, -13.f, 72.f, -13.f, 0.f, -0.f, 53.f, -8.f, 48.f, -6.f, 40.f, -8.f, 36.f, -7.f, 35.f, -11.f, 30.f, -0.f, 25.f, -7.f, 24.f, -11.f, 18.f, -11.f, 12.f, -8.f, 11.f, -11.f, 5.f, -11.f, 0.f, -8.f, 0.f, -0.f
+    };
+  struct LineRun line01 =
+    {
+      {0u, 12u},
+      {0u, 12u},
       79.f,
-      -0.f, //  12 ..  21
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
-      0.f,
-      -10.f,
-      32.f,
-      -2.f,
-      36.f,
-      -12.f, //  22 ..  27
-      58.f,
-      -8.f,
-      52.f,
-      -6.f,
-      45.f,
-      -8.f,
-      41.f,
-      -7.f,
-      39.f,
-      -11.f,
-      34.f,
-      -0.f,
-      30.f,
-      -7.f,
-      28.f,
-      -11.f,
-      23.f,
-      -11.f,
-      16.f,
-      -8.f,
       15.f,
-      -11.f,
-      9.f,
-      -11.f,
+      -5.f,
       4.f,
-      -8.f,
       0.f,
-      -0.f,
+      0.f,
+      false,
+      false};
+  struct LineRun line02 =
+    {
+      {12u, 10u},
+      {12u, 10u},
+      78.f,
+      15.f,
+      -5.f,
       4.f,
-      -13.f,
-      12.f,
-      -9.f,
-      22.f,
-      -13.f,
-      26.f,
-      -13.f,
-      29.f,
-      -9.f,
-      38.f,
-      -0.f, //  28 ..  47
-      42.f,
-      -9.f,
-      54.f,
-      -9.f,
-      64.f,
-      -9.f,
-      70.f,
-      -13.f,
-      73.f,
-      -13.f,
       0.f,
-      -0.f,
-      59.f,
-      -10.f,
-      50.f,
-      -13.f,
-      46.f,
-      -10.f,
-      36.f,
-      -10.f,
-      32.f,
-      -0.f, //  48 ..  58
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
       0.f,
-      -10.f,
+      false,
+      false};
+  struct LineRun line03 =
+    {
+      {22u, 6u},
+      {22u, 6u},
+      35.f,
+      15.f,
+      -5.f,
       0.f,
-      -0.f, //  59 ..  63
-      63.f,
-      -10.f,
-      54.f,
-      -13.f,
-      50.f,
-      -10.f,
-      41.f,
-      -10.f,
-      36.f,
-      -0.f,
-      27.f,
-      -10.f,
-      23.f,
-      -10.f,
-      14.f,
-      -13.f,
-      4.f,
-      -10.f,
       0.f,
-      -0.f, //  64 ..  73
-      4.f,
-      -13.f,
-      12.f,
-      -9.f,
-      22.f,
-      -13.f,
-      26.f,
-      -13.f,
-      29.f,
-      -9.f,
-      38.f,
-      -0.f,
-      42.f,
-      -9.f,
-      54.f,
-      -9.f,
-      64.f,
-      -9.f,
-      70.f,
-      -13.f,
-      73.f,
-      -13.f,
-      0.f,
-      -0.f, //  74 ..  85
-      4.f,
-      -13.f,
-      13.f,
-      -9.f,
-      23.f,
-      -9.f,
-      36.f,
-      -9.f,
-      0.f,
-      -2.f,
-      0.f,
-      -12.f, //  86 ..  91
-      0.f,
-      -13.f,
-      8.f,
-      -9.f,
-      18.f,
-      -13.f,
-      22.f,
-      -13.f,
-      25.f,
-      -9.f,
-      34.f,
-      -0.f,
-      38.f,
-      -9.f,
-      50.f,
-      -9.f,
-      60.f,
-      -9.f,
-      66.f,
-      -13.f,
-      69.f,
-      -13.f,
-      79.f,
-      -0.f, //  92 .. 103
-      92.f,
-      -8.f,
-      86.f,
-      -6.f,
-      79.f,
-      -8.f,
-      75.f,
-      -7.f,
-      73.f,
-      -11.f,
-      68.f,
-      -0.f,
-      64.f,
-      -7.f,
-      62.f,
-      -11.f,
-      57.f,
-      -11.f,
-      50.f,
-      -8.f,
-      49.f,
-      -11.f,
-      43.f,
-      -11.f,
-      38.f,
-      -8.f,
-      34.f,
-      -0.f,
-      23.f,
-      -10.f,
-      14.f,
-      -13.f,
-      10.f,
-      -10.f,
-      0.f,
-      -10.f,
-      99.f,
-      -0.f, // 104 .. 122
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
-      0.f,
-      -10.f,
-      32.f,
-      -0.f, // 123 .. 127
-      0.f,
-      -12.f,
-      10.f,
-      -9.f,
-      20.f,
-      -13.f,
-      24.f,
-      -13.f,
-      27.f,
-      -9.f,
-      36.f,
-      -0.f,
-      40.f,
-      -9.f,
-      52.f,
-      -9.f,
-      62.f,
-      -9.f,
-      69.f,
-      -13.f,
-      72.f,
-      -13.f,
-      81.f,
-      -0.f, // 128 .. 139
-      0.f,
-      -13.f,
-      9.f,
-      -9.f,
-      19.f,
-      -9.f,
-      32.f,
-      -9.f,
-      41.f,
-      -0.f,
-      68.f,
-      -10.f,
-      59.f,
-      -13.f,
-      54.f,
-      -10.f,
-      45.f,
-      -10.f,
-      79.f,
-      -0.f, // 140 .. 149
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
-      0.f,
-      -10.f,
-      32.f,
-      -2.f,
-      36.f,
-      -12.f, // 150 .. 155
-      63.f,
-      -10.f,
-      54.f,
-      -13.f,
-      50.f,
-      -10.f,
-      41.f,
-      -10.f,
-      36.f,
-      -0.f,
-      27.f,
-      -10.f,
-      23.f,
-      -10.f,
-      14.f,
-      -13.f,
-      4.f,
-      -10.f,
-      0.f,
-      -0.f, // 156 .. 165
-      4.f,
-      -13.f,
-      12.f,
-      -9.f,
-      22.f,
-      -13.f,
-      26.f,
-      -13.f,
-      29.f,
-      -9.f,
-      38.f,
-      -0.f,
-      42.f,
-      -9.f,
-      54.f,
-      -9.f,
-      64.f,
-      -9.f,
-      70.f,
-      -13.f,
-      73.f,
-      -13.f,
-      0.f,
-      -0.f, // 166 .. 177
-      54.f,
-      -8.f,
-      49.f,
-      -6.f,
-      41.f,
-      -8.f,
-      37.f,
-      -7.f,
-      35.f,
-      -11.f,
-      31.f,
-      -0.f,
-      26.f,
-      -7.f,
-      24.f,
-      -11.f,
-      19.f,
-      -11.f,
-      12.f,
-      -8.f,
-      11.f,
-      -11.f,
-      5.f,
-      -11.f,
-      0.f,
-      -8.f,
-      0.f,
-      -0.f, // 178 .. 191
-    };
-
-  struct LineRun line01 =
-    {
-      {0u, 12u},
-      {0u, 12u},
-      81.f,
-      15.f,
-      -5.f,
-      4.f,
-      0.f,
-      0.f,
-      false,
-      false};
-  struct LineRun line02 =
-    {
-      {12u, 10u},
-      {12u, 10u},
-      79.f,
-      15.f,
-      -5.f,
-      5.f,
-      0.f,
-      0.f,
-      false,
-      false};
-  struct LineRun line03 =
-    {
-      {22u, 6u},
-      {22u, 6u},
-      35.f,
-      15.f,
-      -5.f,
-      0.f,
-      0.f,
-      0.f,
-      false,
-      false};
-  struct LineRun line04 =
-    {
-      {28u, 14u},
-      {28u, 14u},
-      63.f,
-      15.f,
-      -5.f,
+      0.f,
+      false,
+      false};
+  struct LineRun line04 =
+    {
+      {28u, 20u},
+      {28u, 20u},
+      99.f,
+      15.f,
+      -5.f,
       4.f,
       0.f,
       0.f,
@@ -2275,9 +1777,9 @@ int UtcDaliTextUpdateLayout01(void)
       false};
   struct LineRun line05 =
     {
-      {42, 12u},
-      {42, 12u},
-      79.f,
+      {48, 11u},
+      {48, 11u},
+      78.f,
       15.f,
       -5.f,
       4.f,
@@ -2287,15 +1789,15 @@ int UtcDaliTextUpdateLayout01(void)
       false};
   struct LineRun line06 =
     {
-      {54u, 10u},
-      {54u, 10u},
-      70.f,
+      {59u, 5u},
+      {59u, 5u},
+      32.f,
       15.f,
       -5.f,
       0.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line07 =
     {
@@ -2304,7 +1806,7 @@ int UtcDaliTextUpdateLayout01(void)
       70.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       true,
@@ -2313,7 +1815,7 @@ int UtcDaliTextUpdateLayout01(void)
     {
       {74u, 12u},
       {74u, 12u},
-      79.f,
+      77.f,
       15.f,
       -5.f,
       4.f,
@@ -2325,7 +1827,7 @@ int UtcDaliTextUpdateLayout01(void)
     {
       {86u, 6u},
       {86u, 6u},
-      45.f,
+      44.f,
       15.f,
       -5.f,
       0.f,
@@ -2337,7 +1839,7 @@ int UtcDaliTextUpdateLayout01(void)
     {
       {92u, 12u},
       {92u, 12u},
-      79.f,
+      77.f,
       15.f,
       -5.f,
       4.f,
@@ -2349,10 +1851,10 @@ int UtcDaliTextUpdateLayout01(void)
     {
       {104u, 19u},
       {104u, 19u},
-      100.f,
+      98.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       false,
@@ -2373,7 +1875,7 @@ int UtcDaliTextUpdateLayout01(void)
     {
       {128u, 12u},
       {128u, 12u},
-      81.f,
+      79.f,
       15.f,
       -5.f,
       4.f,
@@ -2385,10 +1887,10 @@ int UtcDaliTextUpdateLayout01(void)
     {
       {140u, 10u},
       {140u, 10u},
-      79.f,
+      78.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       false,
@@ -2412,7 +1914,7 @@ int UtcDaliTextUpdateLayout01(void)
       70.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       true,
@@ -2421,7 +1923,7 @@ int UtcDaliTextUpdateLayout01(void)
     {
       {166u, 12u},
       {166u, 12u},
-      79.f,
+      77.f,
       15.f,
       -5.f,
       4.f,
@@ -2433,7 +1935,7 @@ int UtcDaliTextUpdateLayout01(void)
     {
       {178u, 14u},
       {178u, 14u},
-      63.f,
+      62.f,
       15.f,
       -5.f,
       0.f,
@@ -2758,377 +2260,16 @@ int UtcDaliTextUpdateLayout02(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun16);
   fontDescriptionRuns.PushBack(fontDescriptionRun17);
   Size  textArea(100.f, 300.f);
-  Size  layoutSize(100.f, 380.f);
+  Size  layoutSize(99.f, 380.f);
   float positions[] =
     {
-      0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, //   0 ..  11
-      0.f,
-      -13.f,
-      9.f,
-      -9.f,
-      19.f,
-      -9.f,
-      32.f,
-      -9.f,
-      41.f,
-      -0.f,
-      68.f,
-      -10.f,
-      59.f,
-      -13.f,
-      54.f,
-      -10.f,
-      45.f,
-      -10.f,
+      0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 51.f, -9.f, 61.f, -9.f, 67.f, -13.f, 70.f, -13.f, 79.f, -0.f, 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 31.f, -9.f, 40.f, -0.f, 67.f, -10.f, 58.f, -13.f, 54.f, -10.f, 44.f, -10.f, 78.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, 94.f, -8.f, 89.f, -6.f, 81.f, -8.f, 77.f, -7.f, 76.f, -11.f, 71.f, -0.f, 66.f, -7.f, 65.f, -11.f, 59.f, -11.f, 53.f, -8.f, 52.f, -11.f, 46.f, -11.f, 41.f, -8.f, 37.f, -0.f, 4.f, -13.f, 12.f, -9.f, 21.f, -13.f, 25.f, -13.f, 28.f, -9.f, 0.f, -0.f, 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 38.f, -0.f, 27.f, -10.f, 18.f, -13.f, 14.f, -10.f, 4.f, -10.f, 0.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 0.f, -0.f, 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 40.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, 4.f, -13.f, 12.f, -9.f, 21.f, -13.f, 25.f, -13.f, 28.f, -9.f, 37.f, -0.f, 41.f, -9.f, 53.f, -9.f, 63.f, -9.f, 69.f, -13.f, 72.f, -13.f, 0.f, -0.f, 4.f, -13.f, 13.f, -9.f, 22.f, -9.f, 35.f, -9.f, 0.f, -2.f, 0.f, -12.f, 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 49.f, -9.f, 59.f, -9.f, 65.f, -13.f, 68.f, -13.f, 77.f, -0.f, 91.f, -8.f, 86.f, -6.f, 78.f, -8.f, 74.f, -7.f, 73.f, -11.f, 68.f, -0.f, 63.f, -7.f, 62.f, -11.f, 56.f, -11.f, 50.f, -8.f, 49.f, -11.f, 43.f, -11.f, 38.f, -8.f, 34.f, -0.f, 23.f, -10.f, 14.f, -13.f, 10.f, -10.f, 0.f, -10.f, 98.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -0.f, 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 51.f, -9.f, 61.f, -9.f, 67.f, -13.f, 70.f, -13.f, 79.f, -0.f, 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 31.f, -9.f, 40.f, -0.f, 67.f, -10.f, 58.f, -13.f, 54.f, -10.f, 44.f, -10.f, 78.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 40.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, 4.f, -13.f, 12.f, -9.f, 21.f, -13.f, 25.f, -13.f, 28.f, -9.f, 37.f, -0.f, 41.f, -9.f, 53.f, -9.f, 63.f, -9.f, 69.f, -13.f, 72.f, -13.f, 0.f, -0.f, 53.f, -8.f, 48.f, -6.f, 40.f, -8.f, 36.f, -7.f, 35.f, -11.f, 30.f, -0.f, 25.f, -7.f, 24.f, -11.f, 18.f, -11.f, 12.f, -8.f, 11.f, -11.f, 5.f, -11.f, 0.f, -8.f, 0.f, -0.f
+    };
+  struct LineRun line01 =
+    {
+      {0u, 12u},
+      {0u, 12u},
       79.f,
-      -0.f, //  12 ..  21
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
-      0.f,
-      -10.f,
-      32.f,
-      -2.f,
-      36.f,
-      -12.f, //  22 ..  27
-      58.f,
-      -8.f,
-      52.f,
-      -6.f,
-      45.f,
-      -8.f,
-      41.f,
-      -7.f,
-      39.f,
-      -11.f,
-      34.f,
-      -0.f,
-      30.f,
-      -7.f,
-      28.f,
-      -11.f,
-      23.f,
-      -11.f,
-      16.f,
-      -8.f,
-      15.f,
-      -11.f,
-      9.f,
-      -11.f,
-      4.f,
-      -8.f,
-      0.f,
-      -0.f,
-      4.f,
-      -13.f,
-      12.f,
-      -9.f,
-      22.f,
-      -13.f,
-      26.f,
-      -13.f,
-      29.f,
-      -9.f,
-      38.f,
-      -0.f, //  28 ..  47
-      42.f,
-      -9.f,
-      54.f,
-      -9.f,
-      64.f,
-      -9.f,
-      70.f,
-      -13.f,
-      73.f,
-      -13.f,
-      0.f,
-      -0.f,
-      59.f,
-      -10.f,
-      50.f,
-      -13.f,
-      46.f,
-      -10.f,
-      36.f,
-      -10.f,
-      32.f,
-      -0.f, //  48 ..  58
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
-      0.f,
-      -10.f,
-      0.f,
-      -0.f, //  59 ..  63
-      63.f,
-      -10.f,
-      54.f,
-      -13.f,
-      50.f,
-      -10.f,
-      41.f,
-      -10.f,
-      36.f,
-      -0.f,
-      27.f,
-      -10.f,
-      23.f,
-      -10.f,
-      14.f,
-      -13.f,
-      4.f,
-      -10.f,
-      0.f,
-      -0.f, //  64 ..  73
-      4.f,
-      -13.f,
-      12.f,
-      -9.f,
-      22.f,
-      -13.f,
-      26.f,
-      -13.f,
-      29.f,
-      -9.f,
-      38.f,
-      -0.f,
-      42.f,
-      -9.f,
-      54.f,
-      -9.f,
-      64.f,
-      -9.f,
-      70.f,
-      -13.f,
-      73.f,
-      -13.f,
-      0.f,
-      -0.f, //  74 ..  85
-      4.f,
-      -13.f,
-      13.f,
-      -9.f,
-      23.f,
-      -9.f,
-      36.f,
-      -9.f,
-      0.f,
-      -2.f,
-      0.f,
-      -12.f, //  86 ..  91
-      0.f,
-      -13.f,
-      8.f,
-      -9.f,
-      18.f,
-      -13.f,
-      22.f,
-      -13.f,
-      25.f,
-      -9.f,
-      34.f,
-      -0.f,
-      38.f,
-      -9.f,
-      50.f,
-      -9.f,
-      60.f,
-      -9.f,
-      66.f,
-      -13.f,
-      69.f,
-      -13.f,
-      79.f,
-      -0.f, //  92 .. 103
-      92.f,
-      -8.f,
-      86.f,
-      -6.f,
-      79.f,
-      -8.f,
-      75.f,
-      -7.f,
-      73.f,
-      -11.f,
-      68.f,
-      -0.f,
-      64.f,
-      -7.f,
-      62.f,
-      -11.f,
-      57.f,
-      -11.f,
-      50.f,
-      -8.f,
-      49.f,
-      -11.f,
-      43.f,
-      -11.f,
-      38.f,
-      -8.f,
-      34.f,
-      -0.f,
-      23.f,
-      -10.f,
-      14.f,
-      -13.f,
-      10.f,
-      -10.f,
-      0.f,
-      -10.f,
-      99.f,
-      -0.f, // 104 .. 122
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
-      0.f,
-      -10.f,
-      32.f,
-      -0.f, // 123 .. 127
-      0.f,
-      -12.f,
-      10.f,
-      -9.f,
-      20.f,
-      -13.f,
-      24.f,
-      -13.f,
-      27.f,
-      -9.f,
-      36.f,
-      -0.f,
-      40.f,
-      -9.f,
-      52.f,
-      -9.f,
-      62.f,
-      -9.f,
-      69.f,
-      -13.f,
-      72.f,
-      -13.f,
-      81.f,
-      -0.f, // 128 .. 139
-      0.f,
-      -13.f,
-      9.f,
-      -9.f,
-      19.f,
-      -9.f,
-      32.f,
-      -9.f,
-      41.f,
-      -0.f,
-      68.f,
-      -10.f,
-      59.f,
-      -13.f,
-      54.f,
-      -10.f,
-      45.f,
-      -10.f,
-      79.f,
-      -0.f, // 140 .. 149
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
-      0.f,
-      -10.f,
-      32.f,
-      -2.f,
-      36.f,
-      -12.f, // 150 .. 155
-      63.f,
-      -10.f,
-      54.f,
-      -13.f,
-      50.f,
-      -10.f,
-      41.f,
-      -10.f,
-      36.f,
-      -0.f,
-      27.f,
-      -10.f,
-      23.f,
-      -10.f,
-      14.f,
-      -13.f,
-      4.f,
-      -10.f,
-      0.f,
-      -0.f, // 156 .. 165
-      4.f,
-      -13.f,
-      12.f,
-      -9.f,
-      22.f,
-      -13.f,
-      26.f,
-      -13.f,
-      29.f,
-      -9.f,
-      38.f,
-      -0.f,
-      42.f,
-      -9.f,
-      54.f,
-      -9.f,
-      64.f,
-      -9.f,
-      70.f,
-      -13.f,
-      73.f,
-      -13.f,
-      0.f,
-      -0.f, // 166 .. 177
-      54.f,
-      -8.f,
-      49.f,
-      -6.f,
-      41.f,
-      -8.f,
-      37.f,
-      -7.f,
-      35.f,
-      -11.f,
-      31.f,
-      -0.f,
-      26.f,
-      -7.f,
-      24.f,
-      -11.f,
-      19.f,
-      -11.f,
-      12.f,
-      -8.f,
-      11.f,
-      -11.f,
-      5.f,
-      -11.f,
-      0.f,
-      -8.f,
-      0.f,
-      -0.f, // 178 .. 191
-    };
-
-  struct LineRun line01 =
-    {
-      {0u, 12u},
-      {0u, 12u},
-      81.f,
       15.f,
       -5.f,
       4.f,
@@ -3140,10 +2281,10 @@ int UtcDaliTextUpdateLayout02(void)
     {
       {12u, 10u},
       {12u, 10u},
-      79.f,
+      78.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       false,
@@ -3162,9 +2303,9 @@ int UtcDaliTextUpdateLayout02(void)
       false};
   struct LineRun line04 =
     {
-      {28u, 14u},
-      {28u, 14u},
-      63.f,
+      {28u, 20u},
+      {28u, 20u},
+      99.f,
       15.f,
       -5.f,
       4.f,
@@ -3174,27 +2315,27 @@ int UtcDaliTextUpdateLayout02(void)
       false};
   struct LineRun line05 =
     {
-      {42u, 12u},
-      {42u, 12u},
-      79.f,
+      {48u, 11u},
+      {48u, 11u},
+      78.f,
       15.f,
       -5.f,
       4.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line06 =
     {
-      {54u, 10u},
-      {54u, 10u},
-      70.f,
+      {59u, 5u},
+      {59u, 5u},
+      32.f,
       15.f,
       -5.f,
       0.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line07 =
     {
@@ -3203,40 +2344,40 @@ int UtcDaliTextUpdateLayout02(void)
       70.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line08 =
     {
       {74u, 12u},
       {74u, 12u},
-      79.f,
+      77.f,
       15.f,
       -5.f,
       4.f,
-      1.f,
       0.f,
-      false,
+      0.f,
+      true,
       false};
   struct LineRun line09 =
     {
       {86u, 6u},
       {86u, 6u},
-      45.f,
+      44.f,
       15.f,
       -5.f,
       0.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line10 =
     {
       {92u, 12u},
       {92u, 12u},
-      79.f,
+      77.f,
       15.f,
       -5.f,
       4.f,
@@ -3248,10 +2389,10 @@ int UtcDaliTextUpdateLayout02(void)
     {
       {104u, 19u},
       {104u, 19u},
-      100.f,
+      98.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       false,
@@ -3272,7 +2413,7 @@ int UtcDaliTextUpdateLayout02(void)
     {
       {128u, 12u},
       {128u, 12u},
-      81.f,
+      79.f,
       15.f,
       -5.f,
       4.f,
@@ -3284,10 +2425,10 @@ int UtcDaliTextUpdateLayout02(void)
     {
       {140u, 10u},
       {140u, 10u},
-      79.f,
+      78.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       false,
@@ -3311,7 +2452,7 @@ int UtcDaliTextUpdateLayout02(void)
       70.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       false,
@@ -3320,25 +2461,25 @@ int UtcDaliTextUpdateLayout02(void)
     {
       {166u, 12u},
       {166u, 12u},
-      79.f,
+      77.f,
       15.f,
       -5.f,
       4.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line18 =
     {
       {178u, 14u},
       {178u, 14u},
-      63.f,
+      62.f,
       15.f,
       -5.f,
       0.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line19 =
     {
@@ -3578,456 +2719,96 @@ int UtcDaliTextUpdateLayout03(void)
   fontDescriptionRun13.characterRun.characterIndex     = 145u;
   fontDescriptionRun13.characterRun.numberOfCharacters = 9u;
   fontDescriptionRun13.familyLength                    = fontHebrew.size();
-  fontDescriptionRun13.familyName                      = new char[fontDescriptionRun13.familyLength];
-  memcpy(fontDescriptionRun13.familyName, fontHebrew.c_str(), fontDescriptionRun13.familyLength);
-  fontDescriptionRun13.familyDefined = true;
-  fontDescriptionRun13.weightDefined = false;
-  fontDescriptionRun13.widthDefined  = false;
-  fontDescriptionRun13.slantDefined  = false;
-  fontDescriptionRun13.sizeDefined   = false;
-
-  // Set a known font description
-  FontDescriptionRun fontDescriptionRun14;
-  fontDescriptionRun14.characterRun.characterIndex     = 154u;
-  fontDescriptionRun14.characterRun.numberOfCharacters = 2u;
-  fontDescriptionRun14.familyLength                    = fontLatin.size();
-  fontDescriptionRun14.familyName                      = new char[fontDescriptionRun14.familyLength];
-  memcpy(fontDescriptionRun14.familyName, fontLatin.c_str(), fontDescriptionRun14.familyLength);
-  fontDescriptionRun14.familyDefined = true;
-  fontDescriptionRun14.weightDefined = false;
-  fontDescriptionRun14.widthDefined  = false;
-  fontDescriptionRun14.slantDefined  = false;
-  fontDescriptionRun14.sizeDefined   = false;
-
-  // Set a known font description
-  FontDescriptionRun fontDescriptionRun15;
-  fontDescriptionRun15.characterRun.characterIndex     = 156u;
-  fontDescriptionRun15.characterRun.numberOfCharacters = 10u;
-  fontDescriptionRun15.familyLength                    = fontHebrew.size();
-  fontDescriptionRun15.familyName                      = new char[fontDescriptionRun15.familyLength];
-  memcpy(fontDescriptionRun15.familyName, fontHebrew.c_str(), fontDescriptionRun15.familyLength);
-  fontDescriptionRun15.familyDefined = true;
-  fontDescriptionRun15.weightDefined = false;
-  fontDescriptionRun15.widthDefined  = false;
-  fontDescriptionRun15.slantDefined  = false;
-  fontDescriptionRun15.sizeDefined   = false;
-
-  // Set a known font description
-  FontDescriptionRun fontDescriptionRun16;
-  fontDescriptionRun16.characterRun.characterIndex     = 166u;
-  fontDescriptionRun16.characterRun.numberOfCharacters = 12u;
-  fontDescriptionRun16.familyLength                    = fontLatin.size();
-  fontDescriptionRun16.familyName                      = new char[fontDescriptionRun16.familyLength];
-  memcpy(fontDescriptionRun16.familyName, fontLatin.c_str(), fontDescriptionRun16.familyLength);
-  fontDescriptionRun16.familyDefined = true;
-  fontDescriptionRun16.weightDefined = false;
-  fontDescriptionRun16.widthDefined  = false;
-  fontDescriptionRun16.slantDefined  = false;
-  fontDescriptionRun16.sizeDefined   = false;
-
-  // Set a known font description
-  FontDescriptionRun fontDescriptionRun17;
-  fontDescriptionRun17.characterRun.characterIndex     = 178u;
-  fontDescriptionRun17.characterRun.numberOfCharacters = 14u;
-  fontDescriptionRun17.familyLength                    = fontArabic.size();
-  fontDescriptionRun17.familyName                      = new char[fontDescriptionRun17.familyLength];
-  memcpy(fontDescriptionRun17.familyName, fontArabic.c_str(), fontDescriptionRun17.familyLength);
-  fontDescriptionRun17.familyDefined = true;
-  fontDescriptionRun17.weightDefined = false;
-  fontDescriptionRun17.widthDefined  = false;
-  fontDescriptionRun17.slantDefined  = false;
-  fontDescriptionRun17.sizeDefined   = false;
-
-  Vector<FontDescriptionRun> fontDescriptionRuns;
-  fontDescriptionRuns.PushBack(fontDescriptionRun01);
-  fontDescriptionRuns.PushBack(fontDescriptionRun02);
-  fontDescriptionRuns.PushBack(fontDescriptionRun03);
-  fontDescriptionRuns.PushBack(fontDescriptionRun04);
-  fontDescriptionRuns.PushBack(fontDescriptionRun05);
-  fontDescriptionRuns.PushBack(fontDescriptionRun06);
-  fontDescriptionRuns.PushBack(fontDescriptionRun07);
-  fontDescriptionRuns.PushBack(fontDescriptionRun08);
-  fontDescriptionRuns.PushBack(fontDescriptionRun09);
-  fontDescriptionRuns.PushBack(fontDescriptionRun10);
-  fontDescriptionRuns.PushBack(fontDescriptionRun11);
-  fontDescriptionRuns.PushBack(fontDescriptionRun12);
-  fontDescriptionRuns.PushBack(fontDescriptionRun13);
-  fontDescriptionRuns.PushBack(fontDescriptionRun14);
-  fontDescriptionRuns.PushBack(fontDescriptionRun15);
-  fontDescriptionRuns.PushBack(fontDescriptionRun16);
-  fontDescriptionRuns.PushBack(fontDescriptionRun17);
-  Size  textArea(100.f, 300.f);
-  Size  layoutSize(100.f, 380.f);
-  float positions[] =
-    {
-      0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, //   0 ..  11
-      0.f,
-      -13.f,
-      9.f,
-      -9.f,
-      19.f,
-      -9.f,
-      32.f,
-      -9.f,
-      41.f,
-      -0.f,
-      68.f,
-      -10.f,
-      59.f,
-      -13.f,
-      54.f,
-      -10.f,
-      45.f,
-      -10.f,
-      79.f,
-      -0.f, //  12 ..  21
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
-      0.f,
-      -10.f,
-      32.f,
-      -2.f,
-      36.f,
-      -12.f, //  22 ..  27
-      58.f,
-      -8.f,
-      52.f,
-      -6.f,
-      45.f,
-      -8.f,
-      41.f,
-      -7.f,
-      39.f,
-      -11.f,
-      34.f,
-      -0.f,
-      30.f,
-      -7.f,
-      28.f,
-      -11.f,
-      23.f,
-      -11.f,
-      16.f,
-      -8.f,
-      15.f,
-      -11.f,
-      9.f,
-      -11.f,
-      4.f,
-      -8.f,
-      0.f,
-      -0.f,
-      4.f,
-      -13.f,
-      12.f,
-      -9.f,
-      22.f,
-      -13.f,
-      26.f,
-      -13.f,
-      29.f,
-      -9.f,
-      38.f,
-      -0.f, //  28 ..  47
-      42.f,
-      -9.f,
-      54.f,
-      -9.f,
-      64.f,
-      -9.f,
-      70.f,
-      -13.f,
-      73.f,
-      -13.f,
-      0.f,
-      -0.f,
-      59.f,
-      -10.f,
-      50.f,
-      -13.f,
-      46.f,
-      -10.f,
-      36.f,
-      -10.f,
-      32.f,
-      -0.f, //  48 ..  58
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
-      0.f,
-      -10.f,
-      0.f,
-      -0.f, //  59 ..  63
-      63.f,
-      -10.f,
-      54.f,
-      -13.f,
-      50.f,
-      -10.f,
-      41.f,
-      -10.f,
-      36.f,
-      -0.f,
-      27.f,
-      -10.f,
-      23.f,
-      -10.f,
-      14.f,
-      -13.f,
-      4.f,
-      -10.f,
-      0.f,
-      -0.f, //  64 ..  73
-      4.f,
-      -13.f,
-      12.f,
-      -9.f,
-      22.f,
-      -13.f,
-      26.f,
-      -13.f,
-      29.f,
-      -9.f,
-      38.f,
-      -0.f,
-      42.f,
-      -9.f,
-      54.f,
-      -9.f,
-      64.f,
-      -9.f,
-      70.f,
-      -13.f,
-      73.f,
-      -13.f,
-      0.f,
-      -0.f, //  74 ..  85
-      4.f,
-      -13.f,
-      13.f,
-      -9.f,
-      23.f,
-      -9.f,
-      36.f,
-      -9.f,
-      0.f,
-      -2.f,
-      0.f,
-      -12.f, //  86 ..  91
-      0.f,
-      -13.f,
-      8.f,
-      -9.f,
-      18.f,
-      -13.f,
-      22.f,
-      -13.f,
-      25.f,
-      -9.f,
-      34.f,
-      -0.f,
-      38.f,
-      -9.f,
-      50.f,
-      -9.f,
-      60.f,
-      -9.f,
-      66.f,
-      -13.f,
-      69.f,
-      -13.f,
-      79.f,
-      -0.f, //  92 .. 103
-      92.f,
-      -8.f,
-      86.f,
-      -6.f,
-      79.f,
-      -8.f,
-      75.f,
-      -7.f,
-      73.f,
-      -11.f,
-      68.f,
-      -0.f,
-      64.f,
-      -7.f,
-      62.f,
-      -11.f,
-      57.f,
-      -11.f,
-      50.f,
-      -8.f,
-      49.f,
-      -11.f,
-      43.f,
-      -11.f,
-      38.f,
-      -8.f,
-      34.f,
-      -0.f,
-      23.f,
-      -10.f,
-      14.f,
-      -13.f,
-      10.f,
-      -10.f,
-      0.f,
-      -10.f,
-      99.f,
-      -0.f, // 104 .. 122
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
-      0.f,
-      -10.f,
-      32.f,
-      -0.f, // 123 .. 127
-      0.f,
-      -12.f,
-      10.f,
-      -9.f,
-      20.f,
-      -13.f,
-      24.f,
-      -13.f,
-      27.f,
-      -9.f,
-      36.f,
-      -0.f,
-      40.f,
-      -9.f,
-      52.f,
-      -9.f,
-      62.f,
-      -9.f,
-      69.f,
-      -13.f,
-      72.f,
-      -13.f,
-      81.f,
-      -0.f, // 128 .. 139
-      0.f,
-      -13.f,
-      9.f,
-      -9.f,
-      19.f,
-      -9.f,
-      32.f,
-      -9.f,
-      41.f,
-      -0.f,
-      68.f,
-      -10.f,
-      59.f,
-      -13.f,
-      54.f,
-      -10.f,
-      45.f,
-      -10.f,
-      79.f,
-      -0.f, // 140 .. 149
-      23.f,
-      -10.f,
-      19.f,
-      -10.f,
-      10.f,
-      -13.f,
-      0.f,
-      -10.f,
-      32.f,
-      -2.f,
-      36.f,
-      -12.f, // 150 .. 155
-      63.f,
-      -10.f,
-      54.f,
-      -13.f,
-      50.f,
-      -10.f,
-      41.f,
-      -10.f,
-      36.f,
-      -0.f,
-      27.f,
-      -10.f,
-      23.f,
-      -10.f,
-      14.f,
-      -13.f,
-      4.f,
-      -10.f,
-      0.f,
-      -0.f, // 156 .. 165
-      4.f,
-      -13.f,
-      12.f,
-      -9.f,
-      22.f,
-      -13.f,
-      26.f,
-      -13.f,
-      29.f,
-      -9.f,
-      38.f,
-      -0.f,
-      42.f,
-      -9.f,
-      54.f,
-      -9.f,
-      64.f,
-      -9.f,
-      70.f,
-      -13.f,
-      73.f,
-      -13.f,
-      0.f,
-      -0.f, // 166 .. 177
-      54.f,
-      -8.f,
-      49.f,
-      -6.f,
-      41.f,
-      -8.f,
-      37.f,
-      -7.f,
-      35.f,
-      -11.f,
-      31.f,
-      -0.f,
-      26.f,
-      -7.f,
-      24.f,
-      -11.f,
-      19.f,
-      -11.f,
-      12.f,
-      -8.f,
-      11.f,
-      -11.f,
-      5.f,
-      -11.f,
-      0.f,
-      -8.f,
-      0.f,
-      -0.f, // 178 .. 191
+  fontDescriptionRun13.familyName                      = new char[fontDescriptionRun13.familyLength];
+  memcpy(fontDescriptionRun13.familyName, fontHebrew.c_str(), fontDescriptionRun13.familyLength);
+  fontDescriptionRun13.familyDefined = true;
+  fontDescriptionRun13.weightDefined = false;
+  fontDescriptionRun13.widthDefined  = false;
+  fontDescriptionRun13.slantDefined  = false;
+  fontDescriptionRun13.sizeDefined   = false;
+
+  // Set a known font description
+  FontDescriptionRun fontDescriptionRun14;
+  fontDescriptionRun14.characterRun.characterIndex     = 154u;
+  fontDescriptionRun14.characterRun.numberOfCharacters = 2u;
+  fontDescriptionRun14.familyLength                    = fontLatin.size();
+  fontDescriptionRun14.familyName                      = new char[fontDescriptionRun14.familyLength];
+  memcpy(fontDescriptionRun14.familyName, fontLatin.c_str(), fontDescriptionRun14.familyLength);
+  fontDescriptionRun14.familyDefined = true;
+  fontDescriptionRun14.weightDefined = false;
+  fontDescriptionRun14.widthDefined  = false;
+  fontDescriptionRun14.slantDefined  = false;
+  fontDescriptionRun14.sizeDefined   = false;
+
+  // Set a known font description
+  FontDescriptionRun fontDescriptionRun15;
+  fontDescriptionRun15.characterRun.characterIndex     = 156u;
+  fontDescriptionRun15.characterRun.numberOfCharacters = 10u;
+  fontDescriptionRun15.familyLength                    = fontHebrew.size();
+  fontDescriptionRun15.familyName                      = new char[fontDescriptionRun15.familyLength];
+  memcpy(fontDescriptionRun15.familyName, fontHebrew.c_str(), fontDescriptionRun15.familyLength);
+  fontDescriptionRun15.familyDefined = true;
+  fontDescriptionRun15.weightDefined = false;
+  fontDescriptionRun15.widthDefined  = false;
+  fontDescriptionRun15.slantDefined  = false;
+  fontDescriptionRun15.sizeDefined   = false;
+
+  // Set a known font description
+  FontDescriptionRun fontDescriptionRun16;
+  fontDescriptionRun16.characterRun.characterIndex     = 166u;
+  fontDescriptionRun16.characterRun.numberOfCharacters = 12u;
+  fontDescriptionRun16.familyLength                    = fontLatin.size();
+  fontDescriptionRun16.familyName                      = new char[fontDescriptionRun16.familyLength];
+  memcpy(fontDescriptionRun16.familyName, fontLatin.c_str(), fontDescriptionRun16.familyLength);
+  fontDescriptionRun16.familyDefined = true;
+  fontDescriptionRun16.weightDefined = false;
+  fontDescriptionRun16.widthDefined  = false;
+  fontDescriptionRun16.slantDefined  = false;
+  fontDescriptionRun16.sizeDefined   = false;
+
+  // Set a known font description
+  FontDescriptionRun fontDescriptionRun17;
+  fontDescriptionRun17.characterRun.characterIndex     = 178u;
+  fontDescriptionRun17.characterRun.numberOfCharacters = 14u;
+  fontDescriptionRun17.familyLength                    = fontArabic.size();
+  fontDescriptionRun17.familyName                      = new char[fontDescriptionRun17.familyLength];
+  memcpy(fontDescriptionRun17.familyName, fontArabic.c_str(), fontDescriptionRun17.familyLength);
+  fontDescriptionRun17.familyDefined = true;
+  fontDescriptionRun17.weightDefined = false;
+  fontDescriptionRun17.widthDefined  = false;
+  fontDescriptionRun17.slantDefined  = false;
+  fontDescriptionRun17.sizeDefined   = false;
+
+  Vector<FontDescriptionRun> fontDescriptionRuns;
+  fontDescriptionRuns.PushBack(fontDescriptionRun01);
+  fontDescriptionRuns.PushBack(fontDescriptionRun02);
+  fontDescriptionRuns.PushBack(fontDescriptionRun03);
+  fontDescriptionRuns.PushBack(fontDescriptionRun04);
+  fontDescriptionRuns.PushBack(fontDescriptionRun05);
+  fontDescriptionRuns.PushBack(fontDescriptionRun06);
+  fontDescriptionRuns.PushBack(fontDescriptionRun07);
+  fontDescriptionRuns.PushBack(fontDescriptionRun08);
+  fontDescriptionRuns.PushBack(fontDescriptionRun09);
+  fontDescriptionRuns.PushBack(fontDescriptionRun10);
+  fontDescriptionRuns.PushBack(fontDescriptionRun11);
+  fontDescriptionRuns.PushBack(fontDescriptionRun12);
+  fontDescriptionRuns.PushBack(fontDescriptionRun13);
+  fontDescriptionRuns.PushBack(fontDescriptionRun14);
+  fontDescriptionRuns.PushBack(fontDescriptionRun15);
+  fontDescriptionRuns.PushBack(fontDescriptionRun16);
+  fontDescriptionRuns.PushBack(fontDescriptionRun17);
+  Size  textArea(100.f, 300.f);
+  Size  layoutSize(99.f, 380.f);
+  float positions[] =
+    {
+      0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 51.f, -9.f, 61.f, -9.f, 67.f, -13.f, 70.f, -13.f, 79.f, -0.f, 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 31.f, -9.f, 40.f, -0.f, 67.f, -10.f, 58.f, -13.f, 54.f, -10.f, 44.f, -10.f, 78.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, 94.f, -8.f, 89.f, -6.f, 81.f, -8.f, 77.f, -7.f, 76.f, -11.f, 71.f, -0.f, 66.f, -7.f, 65.f, -11.f, 59.f, -11.f, 53.f, -8.f, 52.f, -11.f, 46.f, -11.f, 41.f, -8.f, 37.f, -0.f, 4.f, -13.f, 12.f, -9.f, 21.f, -13.f, 25.f, -13.f, 28.f, -9.f, 0.f, -0.f, 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 38.f, -0.f, 27.f, -10.f, 18.f, -13.f, 14.f, -10.f, 4.f, -10.f, 0.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 0.f, -0.f, 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 40.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, 4.f, -13.f, 12.f, -9.f, 21.f, -13.f, 25.f, -13.f, 28.f, -9.f, 37.f, -0.f, 41.f, -9.f, 53.f, -9.f, 63.f, -9.f, 69.f, -13.f, 72.f, -13.f, 0.f, -0.f, 4.f, -13.f, 13.f, -9.f, 22.f, -9.f, 35.f, -9.f, 0.f, -2.f, 0.f, -12.f, 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 49.f, -9.f, 59.f, -9.f, 65.f, -13.f, 68.f, -13.f, 77.f, -0.f, 91.f, -8.f, 86.f, -6.f, 78.f, -8.f, 74.f, -7.f, 73.f, -11.f, 68.f, -0.f, 63.f, -7.f, 62.f, -11.f, 56.f, -11.f, 50.f, -8.f, 49.f, -11.f, 43.f, -11.f, 38.f, -8.f, 34.f, -0.f, 23.f, -10.f, 14.f, -13.f, 10.f, -10.f, 0.f, -10.f, 98.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -0.f, 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 51.f, -9.f, 61.f, -9.f, 67.f, -13.f, 70.f, -13.f, 79.f, -0.f, 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 31.f, -9.f, 40.f, -0.f, 67.f, -10.f, 58.f, -13.f, 54.f, -10.f, 44.f, -10.f, 78.f, -0.f, 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 40.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, 4.f, -13.f, 12.f, -9.f, 21.f, -13.f, 25.f, -13.f, 28.f, -9.f, 37.f, -0.f, 41.f, -9.f, 53.f, -9.f, 63.f, -9.f, 69.f, -13.f, 72.f, -13.f, 0.f, -0.f, 53.f, -8.f, 48.f, -6.f, 40.f, -8.f, 36.f, -7.f, 35.f, -11.f, 30.f, -0.f, 25.f, -7.f, 24.f, -11.f, 18.f, -11.f, 12.f, -8.f, 11.f, -11.f, 5.f, -11.f, 0.f, -8.f, 0.f, -0.f
     };
 
   struct LineRun line01 =
     {
       {0u, 12u},
       {0u, 12u},
-      81.f,
+      79.f,
       15.f,
       -5.f,
       4.f,
@@ -4039,10 +2820,10 @@ int UtcDaliTextUpdateLayout03(void)
     {
       {12u, 10u},
       {12u, 10u},
-      79.f,
+      78.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       false,
@@ -4061,39 +2842,39 @@ int UtcDaliTextUpdateLayout03(void)
       false};
   struct LineRun line04 =
     {
-      {28u, 14u},
-      {28u, 14u},
-      63.f,
+      {28u, 20u},
+      {28u, 20u},
+      99.f,
       15.f,
       -5.f,
       4.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line05 =
     {
-      {42u, 12u},
-      {42u, 12u},
-      79.f,
+      {48u, 11u},
+      {48u, 11u},
+      78.f,
       15.f,
       -5.f,
       4.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line06 =
     {
-      {54u, 10u},
-      {54u, 10u},
-      70.f,
+      {59u, 5u},
+      {59u, 5u},
+      32.f,
       15.f,
       -5.f,
       0.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line07 =
     {
@@ -4102,40 +2883,40 @@ int UtcDaliTextUpdateLayout03(void)
       70.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line08 =
     {
       {74u, 12u},
       {74u, 12u},
-      79.f,
+      77.f,
       15.f,
       -5.f,
       4.f,
-      1.f,
       0.f,
-      false,
+      0.f,
+      true,
       false};
   struct LineRun line09 =
     {
       {86u, 6u},
       {86u, 6u},
-      45.f,
+      44.f,
       15.f,
       -5.f,
       0.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line10 =
     {
       {92u, 12u},
       {92u, 12u},
-      79.f,
+      77.f,
       15.f,
       -5.f,
       4.f,
@@ -4147,10 +2928,10 @@ int UtcDaliTextUpdateLayout03(void)
     {
       {104u, 19u},
       {104u, 19u},
-      100.f,
+      98.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       false,
@@ -4171,7 +2952,7 @@ int UtcDaliTextUpdateLayout03(void)
     {
       {128u, 12u},
       {128u, 12u},
-      81.f,
+      79.f,
       15.f,
       -5.f,
       4.f,
@@ -4183,10 +2964,10 @@ int UtcDaliTextUpdateLayout03(void)
     {
       {140u, 10u},
       {140u, 10u},
-      79.f,
+      78.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
       false,
@@ -4210,34 +2991,34 @@ int UtcDaliTextUpdateLayout03(void)
       70.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line17 =
     {
       {166u, 12u},
       {166u, 12u},
-      79.f,
+      77.f,
       15.f,
       -5.f,
       4.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line18 =
     {
       {178u, 14u},
       {178u, 14u},
-      63.f,
+      62.f,
       15.f,
       -5.f,
       0.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line19 =
     {
@@ -4332,9 +3113,9 @@ int UtcDaliTextLayoutEllipsis01(void)
 
   struct LineRun line01 =
     {
-      {0u, 13u},
-      {0u, 13u},
-      93.f,
+      {0u, 14u},
+      {0u, 14u},
+      100.f,
       15.f,
       -5.f,
       0.f,
@@ -4351,27 +3132,27 @@ int UtcDaliTextLayoutEllipsis01(void)
       -12.f,
       10.f,
       -9.f,
-      20.f,
+      19.f,
       -13.f,
-      24.f,
+      23.f,
       -13.f,
-      27.f,
+      26.f,
       -9.f,
-      36.f,
+      35.f,
       -0.f,
-      40.f,
+      39.f,
       -9.f,
-      52.f,
+      51.f,
       -9.f,
-      62.f,
+      61.f,
       -9.f,
-      69.f,
+      67.f,
       -13.f,
-      72.f,
+      70.f,
       -13.f,
-      81.f,
+      79.f,
       -0.f,
-      85.f,
+      83.f,
       -13.f,
     };
 
@@ -4435,7 +3216,7 @@ int UtcDaliTextLayoutEllipsis02(void)
     {
       {0u, 12u},
       {0u, 12u},
-      81.f,
+      79.f,
       15.f,
       -5.f,
       4.f,
@@ -4447,7 +3228,7 @@ int UtcDaliTextLayoutEllipsis02(void)
     {
       {12u, 12u},
       {12u, 12u},
-      95.f,
+      94.f,
       15.f,
       -5.f,
       0.f,
@@ -4461,54 +3242,7 @@ int UtcDaliTextLayoutEllipsis02(void)
 
   float positions[] =
     {
-      0.f,
-      -12.f,
-      10.f,
-      -9.f,
-      20.f,
-      -13.f,
-      24.f,
-      -13.f,
-      27.f,
-      -9.f,
-      36.f,
-      -0.f,
-      40.f,
-      -9.f,
-      52.f,
-      -9.f,
-      62.f,
-      -9.f,
-      69.f,
-      -13.f,
-      72.f,
-      -13.f,
-      81.f,
-      -0.f,
-      0.f,
-      -13.f,
-      9.f,
-      -9.f,
-      19.f,
-      -9.f,
-      32.f,
-      -9.f,
-      41.f,
-      -0.f,
-      46.f,
-      -13.f,
-      54.f,
-      -9.f,
-      64.f,
-      -13.f,
-      68.f,
-      -13.f,
-      71.f,
-      -9.f,
-      80.f,
-      -0.f,
-      84.f,
-      -9.f,
+      0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 51.f, -9.f, 61.f, -9.f, 67.f, -13.f, 70.f, -13.f, 79.f, -0.f, 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 31.f, -9.f, 40.f, -0.f, 45.f, -13.f, 53.f, -9.f, 62.f, -13.f, 66.f, -13.f, 69.f, -9.f, 78.f, -0.f, 82.f, -9.f
     };
 
   Size textArea(100.f, 50.f);
@@ -4652,11 +3386,11 @@ int UtcDaliTextLayoutEllipsis03(void)
     {
       87.f,
       -10.f,
-      79.f,
+      78.f,
       -13.f,
       74.f,
       -10.f,
-      65.f,
+      64.f,
       -10.f,
       60.f,
       -0.f,
@@ -4666,7 +3400,7 @@ int UtcDaliTextLayoutEllipsis03(void)
       -10.f,
       38.f,
       -13.f,
-      29.f,
+      28.f,
       -10.f,
       24.f,
       -0.f,
@@ -4678,9 +3412,9 @@ int UtcDaliTextLayoutEllipsis03(void)
       -8.f,
       0.f,
       -7.f,
-      78.f,
+      77.f,
       -11.f,
-      73.f,
+      72.f,
       -0.f,
     };
 
@@ -4813,22 +3547,22 @@ int UtcDaliTextLayoutEllipsis04(void)
       70.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
-      false,
+      true,
       false};
   struct LineRun line02 =
     {
       {10u, 19u},
       {10u, 19u},
-      99.f,
+      98.f,
       15.f,
       -5.f,
-      5.f,
+      4.f,
       0.f,
       0.f,
-      false,
+      true,
       true};
   Vector<LineRun> lines;
   lines.PushBack(line01);
@@ -4836,74 +3570,7 @@ int UtcDaliTextLayoutEllipsis04(void)
 
   float positions[] =
     {
-      63.f,
-      -10.f,
-      54.f,
-      -13.f,
-      50.f,
-      -10.f,
-      41.f,
-      -10.f,
-      36.f,
-      -0.f,
-      27.f,
-      -10.f,
-      23.f,
-      -10.f,
-      14.f,
-      -13.f,
-      4.f,
-      -10.f,
-      0.f,
-      -0.f,
-      96.f,
-      -8.f,
-      91.f,
-      -6.f,
-      83.f,
-      -8.f,
-      79.f,
-      -7.f,
-      78.f,
-      -11.f,
-      73.f,
-      -0.f,
-      68.f,
-      -7.f,
-      67.f,
-      -11.f,
-      61.f,
-      -11.f,
-      55.f,
-      -8.f,
-      53.f,
-      -11.f,
-      47.f,
-      -11.f,
-      42.f,
-      -8.f,
-      38.f,
-      -0.f,
-      27.f,
-      -10.f,
-      18.f,
-      -13.f,
-      14.f,
-      -10.f,
-      4.f,
-      -10.f,
-      0.f,
-      -0.f,
-      92.f,
-      -10.f,
-      88.f,
-      -10.f,
-      79.f,
-      -13.f,
-      70.f,
-      -10.f,
-      65.f,
-      -0.f,
+      63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 40.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, 95.f, -8.f, 90.f, -6.f, 82.f, -8.f, 78.f, -7.f, 77.f, -11.f, 72.f, -0.f, 67.f, -7.f, 66.f, -11.f, 60.f, -11.f, 54.f, -8.f, 53.f, -11.f, 47.f, -11.f, 42.f, -8.f, 38.f, -0.f, 27.f, -10.f, 18.f, -13.f, 14.f, -10.f, 4.f, -10.f, 0.f, -0.f, 91.f, -10.f, 87.f, -10.f, 78.f, -13.f, 68.f, -10.f, 64.f, -0.f
     };
 
   Size textArea(100.f, 50.f);
@@ -4964,7 +3631,7 @@ int UtcDaliTextLayoutEllipsis05(void)
     {
       {0u, 11u},
       {0u, 11u},
-      80.f,
+      79.f,
       15.f,
       -5.f,
       0.f,
@@ -5222,7 +3889,7 @@ int UtcDaliTextAlign02(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun05);
   fontDescriptionRuns.PushBack(fontDescriptionRun06);
 
-  float positions[] = {0.f, 0.f, 33.f, 19.f, 0.f, 0.f};
+  float positions[] = {0.f, 0.f, 34.f, 21.f, 0.f, 0.f};
 
   Size      textArea(100.f, 300.f);
   AlignData data =
@@ -5462,7 +4129,7 @@ int UtcDaliTextAlign04(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun05);
   fontDescriptionRuns.PushBack(fontDescriptionRun06);
 
-  float positions[] = {9.f, 15.f, 0.f, 0.f, 0.f, 0.f};
+  float positions[] = {10.f, 15.f, 0.f, 0.f, 0.f, 0.f};
 
   Size      textArea(100.f, 300.f);
   AlignData data =
@@ -5582,7 +4249,7 @@ int UtcDaliTextAlign05(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun05);
   fontDescriptionRuns.PushBack(fontDescriptionRun06);
 
-  float positions[] = {0.f, 0.f, 14.f, 9.f, 0.f, 0.f};
+  float positions[] = {0.f, 0.f, 15.f, 10.f, 0.f, 0.f};
 
   Size      textArea(100.f, 300.f);
   AlignData data =
@@ -5702,7 +4369,7 @@ int UtcDaliTextAlign06(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun05);
   fontDescriptionRuns.PushBack(fontDescriptionRun06);
 
-  float positions[] = {0.f, 0.f, 0.f, 0.f, 9.f, 16.f};
+  float positions[] = {0.f, 0.f, 0.f, 0.f, 10.f, 17.f};
 
   Size      textArea(100.f, 300.f);
   AlignData data =
@@ -5822,7 +4489,7 @@ int UtcDaliTextAlign07(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun05);
   fontDescriptionRuns.PushBack(fontDescriptionRun06);
 
-  float positions[] = {19.f, 30.f, 0.f, 0.f, 0.f, 0.f};
+  float positions[] = {21.f, 30.f, 0.f, 0.f, 0.f, 0.f};
 
   Size      textArea(100.f, 300.f);
   AlignData data =
@@ -6062,7 +4729,7 @@ int UtcDaliTextAlign09(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun05);
   fontDescriptionRuns.PushBack(fontDescriptionRun06);
 
-  float positions[] = {0.f, 0.f, 0.f, 0.f, 19.f, 33.f};
+  float positions[] = {0.f, 0.f, 0.f, 0.f, 21.f, 35.f};
 
   Size      textArea(100.f, 300.f);
   AlignData data =
@@ -6302,7 +4969,7 @@ int UtcDaliTextAlign11(void)
   fontDescriptionRuns.PushBack(fontDescriptionRun05);
   fontDescriptionRuns.PushBack(fontDescriptionRun06);
 
-  float positions[] = {19.f, 30.f, 33.f, 0.f, 0.f, 0.f};
+  float positions[] = {21.f, 30.f, 34.f, 0.f, 0.f, 0.f};
 
   Size      textArea(100.f, 300.f);
   AlignData data =
@@ -6499,6 +5166,7 @@ int UtcDaliTextLayoutGetGlyphMetrics(void)
   fontDescriptionRun02.slantDefined  = false;
   fontDescriptionRun02.sizeDefined   = false;
 
+
   // Set a known font description
   FontDescriptionRun fontDescriptionRun03;
   fontDescriptionRun03.characterRun.characterIndex     = 0u;
@@ -6512,6 +5180,7 @@ int UtcDaliTextLayoutGetGlyphMetrics(void)
   fontDescriptionRun03.slantDefined  = false;
   fontDescriptionRun03.sizeDefined   = false;
 
+
   Vector<FontDescriptionRun> fontDescriptionRuns01;
   fontDescriptionRuns01.PushBack(fontDescriptionRun01);
 
@@ -6556,7 +5225,7 @@ int UtcDaliTextLayoutGetGlyphMetrics(void)
     {
       {0u, 2u},
       {0u, 2u},
-      16.f,
+      15.f,
       15.f,
       -5.f,
       0.f,
@@ -6567,7 +5236,7 @@ int UtcDaliTextLayoutGetGlyphMetrics(void)
   Vector<LineRun> lines02;
   lines02.PushBack(line02);
 
-  Size layoutSize02 = Vector2(16.f, 20.f);
+  Size layoutSize02 = Vector2(15.f, 20.f);
 
   // Group: second glyph doesn't exceed the width of the first glyph
   float positions03[] = {0.f, -11.f, 2.f, -15.f};