[Tizen] If ellipsis is true. then we should used index first position. 71/195371/1 accepted/tizen/5.0/unified/20181213.065231 submit/tizen_5.0/20181213.025554
authorJoogab Yun <joogab.yun@samsung.com>
Thu, 13 Dec 2018 02:38:05 +0000 (11:38 +0900)
committerJoogab Yun <joogab.yun@samsung.com>
Thu, 13 Dec 2018 02:38:05 +0000 (11:38 +0900)
If ellipsis is true, the characterIndex value is changed.

bool EllipsisLine ()
{
...
lineRun-> characterRun.characterIndex = ellipsisLayout.characterIndex;
}

In GetLineOfCharacter (), the line index we want is 0, but another value
is returned. ex) index = 1;

The lineRun.alignmentOffset value obtained through the wrong line index
may be wrong. Ex) lineRun.alignmentOffset: 16312432575010308096

So if ellipsis is true. then we should used index first position.

Change-Id: I7912e1ea6f94cc53c272ba7bf424f07a1174af20

dali-toolkit/internal/text/visual-model-impl.cpp

index bd567a4..80f7291 100755 (executable)
@@ -278,7 +278,13 @@ LineIndex VisualModel::GetLineOfCharacter( CharacterIndex characterIndex )
     return mCachedLineIndex;
   }
 
-  // 3) Is not in the cached line. Check in the other lines.
+  // 3) if ellipsis is true. then we should used index first position.
+  if( lineRun.ellipsis )
+  {
+    return 0u;
+  }
+
+  // 4) Is not in the cached line or ellipsis. Check in the other lines.
   LineIndex index = characterIndex < lineRun.characterRun.characterIndex ? 0u : mCachedLineIndex + 1u;
 
   for( Vector<LineRun>::ConstIterator it = mLines.Begin() + index,