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: dali_1.9.2~1^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=5a1a51dcf77aa355d5c4888ca2943e0df5415ce5 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 9dccc05..f4ec162 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 ); } } }