Fixed an incorrect ellipsis 71/199371/2
authorJoogab Yun <joogab.yun@samsung.com>
Mon, 11 Feb 2019 04:13:53 +0000 (13:13 +0900)
committerJoogab Yun <joogab.yun@samsung.com>
Mon, 11 Feb 2019 04:41:23 +0000 (13:41 +0900)
ex) An ellipsis may be displayed incorrectly when there are two or more
new-line characters.

    TextLabel labe34 = TextLabel::New(  "yesterday all my troubles
seemed so\n\n\n\n far away now it looks" );
    labe34.SetSize( 450, 100 );
    labe34.SetParentOrigin(ParentOrigin::TOP_LEFT);
    labe34.SetAnchorPoint(AnchorPoint::TOP_LEFT);
    labe34.SetPosition( 100.f, 500.f);
    labe34.SetProperty(TextLabel::Property::POINT_SIZE, 17.6f);
    labe34.SetProperty( TextLabel::Property::MULTI_LINE, true );
    labe34.SetProperty(TextLabel::Property::ELLIPSIS, true);
    stage.Add( labe34 );

Change-Id: Ib04a4846eb7a431164913e298dc634561842ba3f

automated-tests/src/dali-toolkit-internal/utc-Dali-Text-ViewModel.cpp [changed mode: 0644->0755]
dali-toolkit/internal/text/rendering/view-model.cpp

old mode 100644 (file)
new mode 100755 (executable)
index 35105d1..66e2682
@@ -586,10 +586,10 @@ int UtcDaliTextViewModelElideText02(void)
   float positions01[] = { 0.f, 8.f, 16.f, 26.f, 33.f, 41.f, 45.f, 54.f, 64.0f };
 
   Size textSize02( 80.f, 100.f );
-  float positions02[] = { 72.f, 63.f, 54.f, 50.f, 43.f, 38.f, 30.f, 9.0f };
+  float positions02[] = { 72.f, 63.f, 54.f, 50.f, 43.f, 38.f, 30.f, 23.0f };
 
   Size textSize03( 80.f, 100.f );
-  float positions03[] = { 78.f, 73.f, 70.f, 65.f, 57.f, 55.f, 51.f, 50.f, 45.f, 35.f, 32.f, 24.f, 7.f };
+  float positions03[] = { 78.f, 73.f, 70.f, 65.f, 57.f, 55.f, 51.f, 50.f, 45.f, 35.f, 32.f, 24.f, 21.f };
 
   Size textSize04( 80.f, 10.f );
   float positions04[] = { 2.f };
index 3543fce..70b642f 100755 (executable)
@@ -332,12 +332,6 @@ void ViewModel::ElideGlyphs()
               glyphInfo = ellipsisGlyph;
 
               // Change the 'x' and 'y' position of the ellipsis glyph.
-
-              if( position.x > firstPenX )
-              {
-                position.x = firstPenX + removedGlypsWidth - ellipsisGlyphWidth;
-              }
-
               position.x += ellipsisGlyph.xBearing;
               position.y = penY - ellipsisGlyph.yBearing;