From: Joogab Yun Date: Wed, 26 Feb 2020 06:24:32 +0000 (+0900) Subject: When calculating the layout size, the problem occurs. X-Git-Tag: accepted/tizen/5.5/unified/20200311.131106~1 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=c3ba522e4132f9fabc3ee48d9ad87d240e23daed When calculating the layout size, the problem occurs. 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 --- diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp index 8c934d3..04ef6f0 100755 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp @@ -901,7 +901,7 @@ int UtcDaliTextLayoutMultilineText02(void) { { 12u, 10u }, { 12u, 10u }, - 74.f, + 75.f, 15.f, -4.f, 4.f, @@ -927,7 +927,7 @@ int UtcDaliTextLayoutMultilineText02(void) { { 28u, 10u }, { 28u, 10u }, - 64.f, + 65.f, 15.f, -4.f, 4.f, @@ -1442,7 +1442,7 @@ int UtcDaliTextLayoutMultilineText07(void) { { 3u, 3u }, { 3u, 3u }, - 18.f, + 21.f, 15.f, -4.f, 0.f, @@ -1748,7 +1748,7 @@ int UtcDaliTextUpdateLayout01(void) 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 @@ -1788,7 +1788,7 @@ int UtcDaliTextUpdateLayout01(void) { { 12u, 10u }, { 12u, 10u }, - 74.f, + 75.f, 15.f, -4.f, 4.f, @@ -1814,7 +1814,7 @@ int UtcDaliTextUpdateLayout01(void) { { 28u, 20u }, { 28u, 20u }, - 90.f, + 92.f, 15.f, -4.f, 4.f, @@ -1827,7 +1827,7 @@ int UtcDaliTextUpdateLayout01(void) { { 48u, 11u }, { 48u, 11u }, - 74.f, + 75.f, 15.f, -4.f, 4.f, @@ -1840,7 +1840,7 @@ int UtcDaliTextUpdateLayout01(void) { { 59u, 5u }, { 59u, 5u }, - 28.f, + 29.f, 15.f, -4.f, 0.f, @@ -1853,7 +1853,7 @@ int UtcDaliTextUpdateLayout01(void) { { 64u, 10u }, { 64u, 10u }, - 64.f, + 65.f, 15.f, -4.f, 4.f, @@ -1905,7 +1905,7 @@ int UtcDaliTextUpdateLayout01(void) { { 104u, 19u }, { 104u, 19u }, - 88.f, + 90.f, 15.f, -4.f, 4.f, @@ -1918,7 +1918,7 @@ int UtcDaliTextUpdateLayout01(void) { { 123u, 5u }, { 123u, 5u }, - 28.f, + 29.f, 15.f, -4.f, 0.f, @@ -1944,7 +1944,7 @@ int UtcDaliTextUpdateLayout01(void) { { 140u, 10u }, { 140u, 10u }, - 74.f, + 75.f, 15.f, -4.f, 4.f, @@ -1970,7 +1970,7 @@ int UtcDaliTextUpdateLayout01(void) { { 156u, 10u }, { 156u, 10u }, - 64.f, + 65.f, 15.f, -4.f, 4.f, @@ -1996,7 +1996,7 @@ int UtcDaliTextUpdateLayout01(void) { { 178u, 14u }, { 178u, 14u }, - 54.f, + 56.f, 15.f, -4.f, 0.f, @@ -2323,7 +2323,7 @@ int UtcDaliTextUpdateLayout02(void) 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 @@ -2363,7 +2363,7 @@ int UtcDaliTextUpdateLayout02(void) { { 12u, 10u }, { 12u, 10u }, - 74.f, + 75.f, 15.f, -4.f, 4.f, @@ -2389,7 +2389,7 @@ int UtcDaliTextUpdateLayout02(void) { { 28u, 20u }, { 28u, 20u }, - 90.f, + 92.f, 15.f, -4.f, 4.f, @@ -2402,7 +2402,7 @@ int UtcDaliTextUpdateLayout02(void) { { 48u, 11u }, { 48u, 11u }, - 74.f, + 75.f, 15.f, -4.f, 4.f, @@ -2415,7 +2415,7 @@ int UtcDaliTextUpdateLayout02(void) { { 59u, 5u }, { 59u, 5u }, - 28.f, + 29.f, 15.f, -4.f, 0.f, @@ -2428,7 +2428,7 @@ int UtcDaliTextUpdateLayout02(void) { { 64u, 10u }, { 64u, 10u }, - 64.f, + 65.f, 15.f, -4.f, 4.f, @@ -2480,7 +2480,7 @@ int UtcDaliTextUpdateLayout02(void) { { 104u, 19u }, { 104u, 19u }, - 88.f, + 90.f, 15.f, -4.f, 4.f, @@ -2493,7 +2493,7 @@ int UtcDaliTextUpdateLayout02(void) { { 123u, 5u }, { 123u, 5u }, - 28.f, + 29.f, 15.f, -4.f, 0.f, @@ -2519,7 +2519,7 @@ int UtcDaliTextUpdateLayout02(void) { { 140u, 10u }, { 140u, 10u }, - 74.f, + 75.f, 15.f, -4.f, 4.f, @@ -2545,7 +2545,7 @@ int UtcDaliTextUpdateLayout02(void) { { 156u, 10u }, { 156u, 10u }, - 64.f, + 65.f, 15.f, -4.f, 4.f, @@ -2571,7 +2571,7 @@ int UtcDaliTextUpdateLayout02(void) { { 178u, 14u }, { 178u, 14u }, - 54.f, + 56.f, 15.f, -4.f, 0.f, @@ -2898,7 +2898,7 @@ int UtcDaliTextUpdateLayout03(void) 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 @@ -2938,7 +2938,7 @@ int UtcDaliTextUpdateLayout03(void) { { 12u, 10u }, { 12u, 10u }, - 74.f, + 75.f, 15.f, -4.f, 4.f, @@ -2964,7 +2964,7 @@ int UtcDaliTextUpdateLayout03(void) { { 28u, 20u }, { 28u, 20u }, - 90.f, + 92.f, 15.f, -4.f, 4.f, @@ -2977,7 +2977,7 @@ int UtcDaliTextUpdateLayout03(void) { { 48u, 11u }, { 48u, 11u }, - 74.f, + 75.f, 15.f, -4.f, 4.f, @@ -2990,7 +2990,7 @@ int UtcDaliTextUpdateLayout03(void) { { 59u, 5u }, { 59u, 5u }, - 28.f, + 29.f, 15.f, -4.f, 0.f, @@ -3003,7 +3003,7 @@ int UtcDaliTextUpdateLayout03(void) { { 64u, 10u }, { 64u, 10u }, - 64.f, + 65.f, 15.f, -4.f, 4.f, @@ -3055,7 +3055,7 @@ int UtcDaliTextUpdateLayout03(void) { { 104u, 19u }, { 104u, 19u }, - 88.f, + 90.f, 15.f, -4.f, 4.f, @@ -3068,7 +3068,7 @@ int UtcDaliTextUpdateLayout03(void) { { 123u, 5u }, { 123u, 5u }, - 28.f, + 29.f, 15.f, -4.f, 0.f, @@ -3094,7 +3094,7 @@ int UtcDaliTextUpdateLayout03(void) { { 140u, 10u }, { 140u, 10u }, - 74.f, + 75.f, 15.f, -4.f, 4.f, @@ -3120,7 +3120,7 @@ int UtcDaliTextUpdateLayout03(void) { { 156u, 10u }, { 156u, 10u }, - 64.f, + 65.f, 15.f, -4.f, 4.f, @@ -3146,7 +3146,7 @@ int UtcDaliTextUpdateLayout03(void) { { 178u, 14u }, { 178u, 14u }, - 54.f, + 56.f, 15.f, -4.f, 0.f, @@ -3629,7 +3629,7 @@ int UtcDaliTextLayoutEllipsis04(void) { { 0u, 16u }, { 0u, 16u }, - 92.f, + 94.f, 15.f, -4.f, 3.f, @@ -3642,7 +3642,7 @@ int UtcDaliTextLayoutEllipsis04(void) { { 16u, 18u }, { 16u, 18u }, - 95.f, + 97.f, 15.f, -4.f, 4.f, @@ -3980,7 +3980,7 @@ int UtcDaliTextAlign02(void) 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 = @@ -4222,7 +4222,7 @@ int UtcDaliTextAlign04(void) 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 = @@ -4343,7 +4343,7 @@ int UtcDaliTextAlign05(void) 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 = @@ -4585,7 +4585,7 @@ int UtcDaliTextAlign07(void) 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 = @@ -4827,7 +4827,7 @@ int UtcDaliTextAlign09(void) 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 = @@ -5069,7 +5069,7 @@ int UtcDaliTextAlign11(void) 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 = diff --git a/dali-toolkit/internal/text/layouts/layout-engine.cpp b/dali-toolkit/internal/text/layouts/layout-engine.cpp index 3a15375..eef1e7c 100755 --- a/dali-toolkit/internal/text/layouts/layout-engine.cpp +++ b/dali-toolkit/internal/text/layouts/layout-engine.cpp @@ -376,7 +376,7 @@ struct Engine::Impl } else { - lineLayout.length = length; + lineLayout.length = std::max( length, lineLayout.length ); } } }