From ed315852c49e9a28dc7061ecc64f221301a59e57 Mon Sep 17 00:00:00 2001 From: Jacob Date: Sat, 6 Jan 2024 11:00:00 +0100 Subject: [PATCH 1/2] Minor optimization to widget.Entry --- widget/entry.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/widget/entry.go b/widget/entry.go index e943a8fe52..2f7475613e 100644 --- a/widget/entry.go +++ b/widget/entry.go @@ -1864,8 +1864,9 @@ func (r *entryContentRenderer) Refresh() { r.moveCursor() for _, selection := range selections { - selection.(*canvas.Rectangle).Hidden = !r.content.entry.focused - selection.(*canvas.Rectangle).FillColor = theme.SelectionColor() + rect := selection.(*canvas.Rectangle) + rect.Hidden = !r.content.entry.focused + rect.FillColor = theme.SelectionColor() } canvas.Refresh(r.content) From 792b8de6bb4e57c2cabbb757eefb12c0dea8b31b Mon Sep 17 00:00:00 2001 From: Jacob Date: Sat, 6 Jan 2024 17:39:40 +0100 Subject: [PATCH 2/2] Move color out of loop and fix race condition --- widget/entry.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/widget/entry.go b/widget/entry.go index 2f7475613e..422b331a37 100644 --- a/widget/entry.go +++ b/widget/entry.go @@ -1841,7 +1841,8 @@ func (r *entryContentRenderer) Refresh() { r.content.entry.propertyLock.RLock() provider := r.content.entry.textProvider() placeholder := r.content.entry.placeholderProvider() - focusedAppearance := r.content.entry.focused && !r.content.entry.disabled + focused := r.content.entry.focused + focusedAppearance := focused && !r.content.entry.disabled selections := r.selection r.updateScrollDirections() r.content.entry.propertyLock.RUnlock() @@ -1863,10 +1864,11 @@ func (r *entryContentRenderer) Refresh() { } r.moveCursor() + selectionColor := theme.SelectionColor() for _, selection := range selections { rect := selection.(*canvas.Rectangle) - rect.Hidden = !r.content.entry.focused - rect.FillColor = theme.SelectionColor() + rect.Hidden = !focused + rect.FillColor = selectionColor } canvas.Refresh(r.content)