From f62d7b47febcdd793836b2a9800e5dc7a3ee54cd Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Fri, 12 Feb 2021 22:53:43 +0000 Subject: [PATCH] Fix pointer and cursor misalignment Applying the updated maths for finding characters. Fixes #1937 --- widget/entry.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/widget/entry.go b/widget/entry.go index cde5caadcc..2ea2f7a53d 100644 --- a/widget/entry.go +++ b/widget/entry.go @@ -724,9 +724,10 @@ func (e *Entry) copyToClipboard(clipboard fyne.Clipboard) { func (e *Entry) cursorColAt(text []rune, pos fyne.Position) int { for i := 0; i < len(text); i++ { - str := string(text[0 : i+1]) - wid := fyne.MeasureText(str, theme.TextSize(), e.textStyle()).Width + theme.Padding() - if wid > pos.X+theme.Padding() { + str := string(text[0 : i]) + wid := fyne.MeasureText(str, theme.TextSize(), e.textStyle()).Width + charWid := fyne.MeasureText(string(text[i]), theme.TextSize(), e.textStyle()).Width + if pos.X < theme.Padding()*2 + wid + (charWid/2) { return i } }