Browse Source

Fix List not updating selected item before calling selected handlers

merge-requests/2/head
Trevor Slocum 2 years ago
parent
commit
642a8d8ad4
  1. 1
      CHANGELOG
  2. 11
      list.go

1
CHANGELOG

@ -1,5 +1,6 @@
v1.4.6 (WIP)
- Add List.SetSelectedTextAttributes
- Fix List not updating selected item before calling selected handlers
v1.4.5 (2020-04-25)
- Add multithreading support

11
list.go

@ -123,15 +123,16 @@ func (l *List) SetCurrentItem(index int) *List {
index = 0
}
if index != l.currentItem && l.changed != nil {
previousCurrentItem := l.currentItem
l.currentItem = index
if index != previousCurrentItem && l.changed != nil {
item := l.items[index]
l.Unlock()
l.changed(index, item.MainText, item.SecondaryText, item.Shortcut)
l.Lock()
}
l.currentItem = index
l.Unlock()
return l
}
@ -978,6 +979,7 @@ func (l *List) MouseHandler() func(action MouseAction, event *tcell.EventMouse,
if index != -1 {
item := l.items[index]
if item.Enabled {
l.currentItem = index
if item.Selected != nil {
item.Selected()
}
@ -987,7 +989,6 @@ func (l *List) MouseHandler() func(action MouseAction, event *tcell.EventMouse,
if index != l.currentItem && l.changed != nil {
l.changed(index, item.MainText, item.SecondaryText, item.Shortcut)
}
l.currentItem = index
}
}
consumed = true
@ -1004,10 +1005,10 @@ func (l *List) MouseHandler() func(action MouseAction, event *tcell.EventMouse,
if index != -1 {
item := l.items[index]
if item.Enabled {
l.currentItem = index
if index != l.currentItem && l.changed != nil {
l.changed(index, item.MainText, item.SecondaryText, item.Shortcut)
}
l.currentItem = index
}
}

Loading…
Cancel
Save