From bd3f097895c840445647090e64413d848a090641 Mon Sep 17 00:00:00 2001 From: Benedikt Stebner Date: Tue, 25 Jul 2023 13:26:15 +0200 Subject: [PATCH] Adjust behavior to match what WPF expects --- src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs | 4 ++-- .../Media/TextFormatting/TextLineTests.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs b/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs index 86c29941e7..a2936f1857 100644 --- a/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs +++ b/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs @@ -204,7 +204,7 @@ namespace Avalonia.Media.TextFormatting if (_paragraphProperties.FlowDirection == FlowDirection.RightToLeft) { - currentPosition = Length - firstRun.Length; + currentPosition += lineLength - firstRun.Length; } return GetRunCharacterHit(firstRun, currentPosition, 0); @@ -216,7 +216,7 @@ namespace Avalonia.Media.TextFormatting if (_paragraphProperties.FlowDirection == FlowDirection.LeftToRight) { - currentPosition = FirstTextSourceIndex + Length - lastRun.Length; + currentPosition += lineLength - lastRun.Length; } return GetRunCharacterHit(lastRun, currentPosition, distance); diff --git a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLineTests.cs b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLineTests.cs index a3bbdc9a7c..96c592702b 100644 --- a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLineTests.cs +++ b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLineTests.cs @@ -713,7 +713,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting var characterHit = textLine.GetCharacterHitFromDistance(1000); - Assert.Equal(11, characterHit.FirstCharacterIndex); + Assert.Equal(10, characterHit.FirstCharacterIndex); Assert.Equal(1, characterHit.TrailingLength); } }