From f1d54de97f48c5a5d4019f00c5429f18bb153040 Mon Sep 17 00:00:00 2001 From: FoggyFinder Date: Wed, 8 Apr 2020 00:13:42 +0300 Subject: [PATCH] revert last commit, use Text instead of rects in checks --- src/Skia/Avalonia.Skia/FormattedTextImpl.cs | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/Skia/Avalonia.Skia/FormattedTextImpl.cs b/src/Skia/Avalonia.Skia/FormattedTextImpl.cs index 53d55e3f99..d0157815a9 100644 --- a/src/Skia/Avalonia.Skia/FormattedTextImpl.cs +++ b/src/Skia/Avalonia.Skia/FormattedTextImpl.cs @@ -140,20 +140,17 @@ namespace Avalonia.Skia public Rect HitTestTextPosition(int index) { - var lineWidth = (float)_bounds.Width; - var alignmentOffset = TransformX(0, lineWidth, _paint.TextAlign); - - if (string.IsNullOrEmpty(Text) || index < 0) + if (string.IsNullOrEmpty(Text)) { + var alignmentOffset = TransformX(0, 0, _paint.TextAlign); return new Rect(alignmentOffset, 0, 0, _lineHeight); } - - if (index >= Text.Length) + var rects = GetRects(); + if (index >= Text.Length || index < 0) { - return new Rect(lineWidth + alignmentOffset, 0, 0, _lineHeight); + var r = rects.LastOrDefault(); + return new Rect(r.X + r.Width, r.Y, 0, _lineHeight); } - - var rects = GetRects(); return rects[index]; }