Fix scrolling table with PageDown and PageUp

Resolves #402.
This commit is contained in:
Trevor Slocum 2020-02-13 10:00:20 -08:00
parent e8d1520774
commit 5c7d71700b
1 changed files with 14 additions and 4 deletions

View File

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