because it is calculated smaller when ReorderBiDiLayout() in RTL language.
For example, if layout.length is calculated as 487 in GetLineLayoutForBox()
but length is calculated as 482 in ReorderBiDiLayout()
(SetResizePolicy is USE_NATURAL_SIZE and Set MULTI_LINE)
sample)
TextLabel labe21 = TextLabel::New();
labe21.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::WIDTH );
labe21.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
labe21.SetProperty(Toolkit::DevelTextLabel::Property::BACKGROUND, backgroundMap);
labe21.SetParentOrigin(ParentOrigin::TOP_LEFT);
labe21.SetAnchorPoint(AnchorPoint::TOP_LEFT);
labe21.SetProperty(TextLabel::Property::POINT_SIZE, 34.f);
labe21.SetPosition( 145.f, 100.f);
labe21.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "END" );
labe21.SetProperty(Dali::Toolkit::TextLabel::Property::TEXT, "مرحبا بالعالم Hello world" );
Change-Id: I1c56ec9a7e54521e55e72fbf28ad8438ea9e718d
{
{ 12u, 10u },
{ 12u, 10u },
{
{ 12u, 10u },
{ 12u, 10u },
{
{ 28u, 10u },
{ 28u, 10u },
{
{ 28u, 10u },
{ 28u, 10u },
{
{ 3u, 3u },
{ 3u, 3u },
{
{ 3u, 3u },
{ 3u, 3u },
fontDescriptionRuns.PushBack( fontDescriptionRun16 );
fontDescriptionRuns.PushBack( fontDescriptionRun17 );
Size textArea(100.f, 300.f);
fontDescriptionRuns.PushBack( fontDescriptionRun16 );
fontDescriptionRuns.PushBack( fontDescriptionRun17 );
Size textArea(100.f, 300.f);
- Size layoutSize(90.f, 361.f);
+ Size layoutSize(92.f, 361.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, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, // 0 .. 11
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, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, // 0 .. 11
{
{ 12u, 10u },
{ 12u, 10u },
{
{ 12u, 10u },
{ 12u, 10u },
{
{ 28u, 20u },
{ 28u, 20u },
{
{ 28u, 20u },
{ 28u, 20u },
{
{ 48u, 11u },
{ 48u, 11u },
{
{ 48u, 11u },
{ 48u, 11u },
{
{ 59u, 5u },
{ 59u, 5u },
{
{ 59u, 5u },
{ 59u, 5u },
{
{ 64u, 10u },
{ 64u, 10u },
{
{ 64u, 10u },
{ 64u, 10u },
{
{ 104u, 19u },
{ 104u, 19u },
{
{ 104u, 19u },
{ 104u, 19u },
{
{ 123u, 5u },
{ 123u, 5u },
{
{ 123u, 5u },
{ 123u, 5u },
{
{ 140u, 10u },
{ 140u, 10u },
{
{ 140u, 10u },
{ 140u, 10u },
{
{ 156u, 10u },
{ 156u, 10u },
{
{ 156u, 10u },
{ 156u, 10u },
{
{ 178u, 14u },
{ 178u, 14u },
{
{ 178u, 14u },
{ 178u, 14u },
fontDescriptionRuns.PushBack( fontDescriptionRun16 );
fontDescriptionRuns.PushBack( fontDescriptionRun17 );
Size textArea(100.f, 300.f);
fontDescriptionRuns.PushBack( fontDescriptionRun16 );
fontDescriptionRuns.PushBack( fontDescriptionRun17 );
Size textArea(100.f, 300.f);
- Size layoutSize(90.f, 361.f);
+ Size layoutSize(92.f, 361.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, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, // 0 .. 11
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, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, // 0 .. 11
{
{ 12u, 10u },
{ 12u, 10u },
{
{ 12u, 10u },
{ 12u, 10u },
{
{ 28u, 20u },
{ 28u, 20u },
{
{ 28u, 20u },
{ 28u, 20u },
{
{ 48u, 11u },
{ 48u, 11u },
{
{ 48u, 11u },
{ 48u, 11u },
{
{ 59u, 5u },
{ 59u, 5u },
{
{ 59u, 5u },
{ 59u, 5u },
{
{ 64u, 10u },
{ 64u, 10u },
{
{ 64u, 10u },
{ 64u, 10u },
{
{ 104u, 19u },
{ 104u, 19u },
{
{ 104u, 19u },
{ 104u, 19u },
{
{ 123u, 5u },
{ 123u, 5u },
{
{ 123u, 5u },
{ 123u, 5u },
{
{ 140u, 10u },
{ 140u, 10u },
{
{ 140u, 10u },
{ 140u, 10u },
{
{ 156u, 10u },
{ 156u, 10u },
{
{ 156u, 10u },
{ 156u, 10u },
{
{ 178u, 14u },
{ 178u, 14u },
{
{ 178u, 14u },
{ 178u, 14u },
fontDescriptionRuns.PushBack( fontDescriptionRun16 );
fontDescriptionRuns.PushBack( fontDescriptionRun17 );
Size textArea(100.f, 300.f);
fontDescriptionRuns.PushBack( fontDescriptionRun16 );
fontDescriptionRuns.PushBack( fontDescriptionRun17 );
Size textArea(100.f, 300.f);
- Size layoutSize(90.f, 361.f);
+ Size layoutSize(92.f, 361.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, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, // 0 .. 11
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, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, // 0 .. 11
{
{ 12u, 10u },
{ 12u, 10u },
{
{ 12u, 10u },
{ 12u, 10u },
{
{ 28u, 20u },
{ 28u, 20u },
{
{ 28u, 20u },
{ 28u, 20u },
{
{ 48u, 11u },
{ 48u, 11u },
{
{ 48u, 11u },
{ 48u, 11u },
{
{ 59u, 5u },
{ 59u, 5u },
{
{ 59u, 5u },
{ 59u, 5u },
{
{ 64u, 10u },
{ 64u, 10u },
{
{ 64u, 10u },
{ 64u, 10u },
{
{ 104u, 19u },
{ 104u, 19u },
{
{ 104u, 19u },
{ 104u, 19u },
{
{ 123u, 5u },
{ 123u, 5u },
{
{ 123u, 5u },
{ 123u, 5u },
{
{ 140u, 10u },
{ 140u, 10u },
{
{ 140u, 10u },
{ 140u, 10u },
{
{ 156u, 10u },
{ 156u, 10u },
{
{ 156u, 10u },
{ 156u, 10u },
{
{ 178u, 14u },
{ 178u, 14u },
{
{ 178u, 14u },
{ 178u, 14u },
{
{ 0u, 16u },
{ 0u, 16u },
{
{ 0u, 16u },
{ 0u, 16u },
{
{ 16u, 18u },
{ 16u, 18u },
{
{ 16u, 18u },
{ 16u, 18u },
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
- float positions[] = { 0.f, 0.f, 4.f, 61.f, 0.f, 0.f };
+ float positions[] = { 0.f, 0.f, 2.f, 61.f, 0.f, 0.f };
Size textArea( 100.f, 300.f );
AlignData data =
Size textArea( 100.f, 300.f );
AlignData data =
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
- float positions[] = { 11.f, 18.f, 0.f, 0.f, 0.f, 0.f };
+ float positions[] = { 11.f, 17.f, 0.f, 0.f, 0.f, 0.f };
Size textArea( 100.f, 300.f );
AlignData data =
Size textArea( 100.f, 300.f );
AlignData data =
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
- float positions[] = { 0.f, 0.f, 0.f, 30.f, 0.f, 0.f };
+ float positions[] = { 0.f, 0.f, -1.f, 30.f, 0.f, 0.f };
Size textArea( 100.f, 300.f );
AlignData data =
Size textArea( 100.f, 300.f );
AlignData data =
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
- float positions[] = { 22.f, 36.f, 0.f, 0.f, 0.f, 0.f };
+ float positions[] = { 22.f, 35.f, 0.f, 0.f, 0.f, 0.f };
Size textArea( 100.f, 300.f );
AlignData data =
Size textArea( 100.f, 300.f );
AlignData data =
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
- float positions[] = { 0.f, 0.f, 0.f, 0.f, 22.f, 43.f };
+ float positions[] = { 0.f, 0.f, 0.f, 0.f, 22.f, 42.f };
Size textArea( 100.f, 300.f );
AlignData data =
Size textArea( 100.f, 300.f );
AlignData data =
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
- float positions[] = { 22.f, 36.f, 4.f, 0.f, 0.f, 0.f };
+ float positions[] = { 22.f, 35.f, 2.f, 0.f, 0.f, 0.f };
Size textArea( 100.f, 300.f );
AlignData data =
Size textArea( 100.f, 300.f );
AlignData data =
- lineLayout.length = length;
+ lineLayout.length = std::max( length, lineLayout.length );