Fix autoscrolling in room list when using keyboard. Fixes #34

This commit is contained in:
Tulir Asokan 2018-04-30 12:50:12 +03:00
parent c5ec94a78f
commit 8346f65e3d

View File

@ -223,9 +223,10 @@ func (list *RoomList) SetSelected(tag string, room *rooms.Room) {
list.selectedTag = tag
pos := list.index(tag, room)
_, _, _, height := list.GetRect()
if pos < list.scrollOffset || pos > list.scrollOffset+height {
// TODO this does weird stuff sometimes, needs to be fixed
//list.scrollOffset = pos
if pos <= list.scrollOffset {
list.scrollOffset = pos-1
} else if pos >= list.scrollOffset+height {
list.scrollOffset = pos-height+1
}
debug.Print("Selecting", room.GetTitle(), "in", list.GetTagDisplayName(tag))
}
@ -358,6 +359,7 @@ func (list *RoomList) index(tag string, room *rooms.Room) int {
if localIndex == -1 {
return -1
}
localIndex = len(list.items[tag]) - 1 - localIndex
// Tag header
localIndex += 1