reset itemForIndex map properly in GridView

This commit is contained in:
Drew Weymouth
2024-02-15 17:21:18 -08:00
parent 93863ad753
commit 0cc497efde
+3
View File
@@ -164,6 +164,7 @@ func (g *GridView) Reset(iter GridViewIterator) {
g.stateMutex.Lock() g.stateMutex.Lock()
g.cancelFetch() g.cancelFetch()
g.items = nil g.items = nil
g.itemForIndex = make(map[int]*GridViewItem)
g.done = false g.done = false
g.highestShown = 0 g.highestShown = 0
g.iter = iter g.iter = iter
@@ -176,6 +177,7 @@ func (g *GridView) ResetFromState(state *GridViewState) {
g.stateMutex.Lock() g.stateMutex.Lock()
g.cancelFetch() g.cancelFetch()
g.GridViewState = *state g.GridViewState = *state
g.itemForIndex = make(map[int]*GridViewItem)
g.stateMutex.Unlock() g.stateMutex.Unlock()
g.grid.Refresh() g.grid.Refresh()
g.grid.ScrollToOffset(state.scrollPos) g.grid.ScrollToOffset(state.scrollPos)
@@ -186,6 +188,7 @@ func (g *GridView) ResetFixed(items []GridViewItemModel) {
g.stateMutex.Lock() g.stateMutex.Lock()
g.cancelFetch() g.cancelFetch()
g.items = items g.items = items
g.itemForIndex = make(map[int]*GridViewItem)
g.done = true g.done = true
g.highestShown = 0 g.highestShown = 0
g.iter = nil g.iter = nil