From c6914e22a700254ae29334d1d2873f549a698227 Mon Sep 17 00:00:00 2001 From: Compunet <117437050+dme-compunet@users.noreply.github.com> Date: Thu, 10 Oct 2024 13:41:42 +0300 Subject: [PATCH] Fixed an issue RTL wrapped text calculates an extra line for the control desired size (#17209) * Always Return 0 bidi level for TextEndOfLine run * Fix test unit * Expand the unit test --------- Co-authored-by: Benedikt Stebner Co-authored-by: Julien Lebosquain --- .../Media/TextFormatting/BidiReorderer.cs | 2 +- .../Media/TextFormatting/TextFormatterTests.cs | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Base/Media/TextFormatting/BidiReorderer.cs b/src/Avalonia.Base/Media/TextFormatting/BidiReorderer.cs index 85fea48edb..0612ecf8e0 100644 --- a/src/Avalonia.Base/Media/TextFormatting/BidiReorderer.cs +++ b/src/Avalonia.Base/Media/TextFormatting/BidiReorderer.cs @@ -169,7 +169,7 @@ namespace Avalonia.Media.TextFormatting if (run is TextEndOfLine) { - return defaultLevel; + return 0; } if(previousLevel is not null) diff --git a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs index 83c5fc377c..5ff0a45e39 100644 --- a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs +++ b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs @@ -156,11 +156,15 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting Assert.Equal(14, textLine.Length); - var second = textLine.TextRuns[1] as ShapedTextRun; + var first = textLine.TextRuns[0] as ShapedTextRun; - Assert.NotNull(second); + var last = textLine.TextRuns[4] as TextEndOfParagraph; - Assert.Equal("Hello".AsMemory(), second.Text); + Assert.NotNull(first); + + Assert.NotNull(last); + + Assert.Equal("Hello".AsMemory(), first.Text); } }