From 800a15683d3392d85174553d8dee2bb51fce24a6 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sat, 21 Dec 2024 11:13:12 -0800 Subject: [PATCH] fix scrolling performance of grid views when not showing album year --- ui/widgets/gridview.go | 8 ++++---- ui/widgets/gridviewitem.go | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ui/widgets/gridview.go b/ui/widgets/gridview.go index eef999bc..f81a10da 100644 --- a/ui/widgets/gridview.go +++ b/ui/widgets/gridview.go @@ -3,10 +3,11 @@ package widgets import ( "context" "fmt" - "fyne.io/fyne/v2/lang" "strconv" "sync" + "fyne.io/fyne/v2/lang" + "github.com/dweymouth/supersonic/backend/mediaprovider" "github.com/dweymouth/supersonic/sharedutil" myTheme "github.com/dweymouth/supersonic/ui/theme" @@ -329,14 +330,13 @@ func (g *GridView) doUpdateItemCard(itemIdx int, card *GridViewItem) { } card.ItemIndex = itemIdx g.itemForIndex[itemIdx] = card - card.Cover.Im.PlaceholderIcon = g.Placeholder card.ShowSuffix = g.ShowSuffix - if !card.NeedsUpdate(item) && card.ItemIndex == itemIdx { + if !card.NeedsUpdate(item) { // nothing to do g.stateMutex.Unlock() - card.Refresh() return } + card.Cover.Im.PlaceholderIcon = g.Placeholder g.stateMutex.Unlock() card.Update(item) card.ImgLoader.Load(item.CoverArtID) diff --git a/ui/widgets/gridviewitem.go b/ui/widgets/gridviewitem.go index 2b4bdf00..f56a747e 100644 --- a/ui/widgets/gridviewitem.go +++ b/ui/widgets/gridviewitem.go @@ -207,7 +207,8 @@ func NewGridViewItem(placeholderResource fyne.Resource) *GridViewItem { func (g *GridViewItem) NeedsUpdate(model GridViewItemModel) bool { return g.itemID != model.ID || !slices.Equal(g.secondaryIDs, model.SecondaryIDs) || - g.secondaryText.Suffix != model.Suffix + (g.ShowSuffix && g.secondaryText.Suffix != model.Suffix) || + (!g.ShowSuffix && g.secondaryText.Suffix != "") } func (g *GridViewItem) Update(model GridViewItemModel) {