Browse Source

Fix emergency text wrapping for some unicode sequences

pull/10936/head
Benedikt Stebner 4 years ago
parent
commit
2f67ca23f9
  1. 6
      src/Avalonia.Base/Media/TextFormatting/TextFormatterImpl.cs
  2. 2
      tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs

6
src/Avalonia.Base/Media/TextFormatting/TextFormatterImpl.cs

@ -834,6 +834,12 @@ namespace Avalonia.Media.TextFormatting
continue; continue;
} }
//We don't want to surpass the measuredLength with trailing whitespace when we are in a right to left setting.
if(currentPosition > measuredLength && resolvedFlowDirection == FlowDirection.RightToLeft)
{
break;
}
measuredLength = currentPosition; measuredLength = currentPosition;
break; break;

2
tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs

@ -416,7 +416,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting
} }
[InlineData("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor", [InlineData("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor",
new[] { "Lorem ipsum ", "dolor sit ", "amet, ", "consectetur ", "adipisicing ", "elit, sed do ", "eiusmod tempor" })] new[] { "Lorem ipsum ", "dolor sit amet, ", "consectetur ", "adipisicing ", "elit, sed do ", "eiusmod tempor" })]
[Theory] [Theory]
public void Should_Produce_Wrapped_And_Trimmed_Lines(string text, string[] expectedLines) public void Should_Produce_Wrapped_And_Trimmed_Lines(string text, string[] expectedLines)

Loading…
Cancel
Save