|
|
@@ -361,7 +361,9 @@ namespace Avalonia.Media
|
|
|
|
|
|
characterIndex = cluster;
|
|
|
|
|
|
- if (currentX - advance < distance)
|
|
|
+ var offsetX = currentX - advance;
|
|
|
+
|
|
|
+ if (offsetX < distance)
|
|
|
{
|
|
|
break;
|
|
|
}
|
|
|
@@ -375,7 +377,8 @@ namespace Avalonia.Media
|
|
|
var characterHit = FindNearestCharacterHit(characterIndex, out var width);
|
|
|
|
|
|
var delta = width / 2;
|
|
|
- var offset = IsLeftToRight ? distance - currentX : currentX - distance;
|
|
|
+
|
|
|
+ var offset = IsLeftToRight ? Math.Round(distance - currentX, 3) : Math.Round(currentX - distance, 3);
|
|
|
|
|
|
var isTrailing = offset > delta;
|
|
|
|