make sure to always update itemForID maps for focus traversal
This commit is contained in:
@@ -197,9 +197,9 @@ func NewGenreList(sorting widgets.ListHeaderSort) *GenreList {
|
|||||||
},
|
},
|
||||||
func(id widget.ListItemID, item fyne.CanvasObject) {
|
func(id widget.ListItemID, item fyne.CanvasObject) {
|
||||||
row := item.(*GenreListRow)
|
row := item.(*GenreListRow)
|
||||||
|
a.list.SetItemForID(id, row)
|
||||||
if row.Item != a.genres[id] {
|
if row.Item != a.genres[id] {
|
||||||
row.EnsureUnfocused()
|
row.EnsureUnfocused()
|
||||||
a.list.SetItemForID(id, row)
|
|
||||||
row.ListItemID = id
|
row.ListItemID = id
|
||||||
row.Item = a.genres[id]
|
row.Item = a.genres[id]
|
||||||
row.nameLabel.Text = row.Item.Name
|
row.nameLabel.Text = row.Item.Name
|
||||||
|
|||||||
@@ -289,18 +289,18 @@ func (g *GridView) doUpdateItemCard(itemIdx int, card *GridViewItem) {
|
|||||||
if itemIdx < len(g.items) {
|
if itemIdx < len(g.items) {
|
||||||
item = g.items[itemIdx]
|
item = g.items[itemIdx]
|
||||||
}
|
}
|
||||||
card.Cover.Im.CenterIcon = g.Placeholder
|
|
||||||
if !card.NeedsUpdate(item) && card.ItemIndex == itemIdx {
|
|
||||||
// nothing to do
|
|
||||||
g.stateMutex.Unlock()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// update itemForIndex map
|
// update itemForIndex map
|
||||||
if c, ok := g.itemForIndex[card.ItemIndex]; ok && c == card {
|
if c, ok := g.itemForIndex[card.ItemIndex]; ok && c == card {
|
||||||
delete(g.itemForIndex, card.ItemIndex)
|
delete(g.itemForIndex, card.ItemIndex)
|
||||||
}
|
}
|
||||||
card.ItemIndex = itemIdx
|
card.ItemIndex = itemIdx
|
||||||
g.itemForIndex[itemIdx] = card
|
g.itemForIndex[itemIdx] = card
|
||||||
|
card.Cover.Im.CenterIcon = g.Placeholder
|
||||||
|
if !card.NeedsUpdate(item) && card.ItemIndex == itemIdx {
|
||||||
|
// nothing to do
|
||||||
|
g.stateMutex.Unlock()
|
||||||
|
return
|
||||||
|
}
|
||||||
g.stateMutex.Unlock()
|
g.stateMutex.Unlock()
|
||||||
card.Update(item)
|
card.Update(item)
|
||||||
card.ImgLoader.Load(item.CoverArtID)
|
card.ImgLoader.Load(item.CoverArtID)
|
||||||
|
|||||||
@@ -168,8 +168,8 @@ func NewTracklist(tracks []*mediaprovider.Track) *Tracklist {
|
|||||||
t.tracksMutex.RUnlock()
|
t.tracksMutex.RUnlock()
|
||||||
|
|
||||||
tr := item.(*TrackRow)
|
tr := item.(*TrackRow)
|
||||||
|
t.list.SetItemForID(itemID, tr)
|
||||||
if tr.trackID != model.track.ID || tr.ListItemID != itemID {
|
if tr.trackID != model.track.ID || tr.ListItemID != itemID {
|
||||||
t.list.SetItemForID(itemID, tr)
|
|
||||||
tr.ListItemID = itemID
|
tr.ListItemID = itemID
|
||||||
}
|
}
|
||||||
i := -1 // signal that we want to display the actual track num.
|
i := -1 // signal that we want to display the actual track num.
|
||||||
|
|||||||
Reference in New Issue
Block a user