Fix scrolling Table with PageDown and PageUp when some fixedRows are not visible

This commit is contained in:
Trevor Slocum 2020-02-24 08:47:59 -08:00
parent 74844d6d3f
commit d815ca837d
1 changed files with 14 additions and 4 deletions

View File

@ -1159,27 +1159,37 @@ func (t *Table) InputHandler() func(event *tcell.EventKey, setFocus func(p Primi
}
pageDown = func() {
offsetAmount := t.visibleRows - t.fixedRows
if offsetAmount < 0 {
offsetAmount = 0
}
if t.rowsSelectable {
t.selectedRow += t.visibleRows - t.fixedRows
t.selectedRow += offsetAmount
if t.selectedRow >= len(t.cells) {
t.selectedRow = len(t.cells) - 1
}
next()
} else {
t.rowOffset += t.visibleRows - t.fixedRows
t.rowOffset += offsetAmount
}
}
pageUp = func() {
offsetAmount := t.visibleRows - t.fixedRows
if offsetAmount < 0 {
offsetAmount = 0
}
if t.rowsSelectable {
t.selectedRow -= t.visibleRows - t.fixedRows
t.selectedRow -= offsetAmount
if t.selectedRow < 0 {
t.selectedRow = 0
}
previous()
} else {
t.trackEnd = false
t.rowOffset -= t.visibleRows - t.fixedRows
t.rowOffset -= offsetAmount
}
}
)