Skip to content

Commit 4c1baf0

Browse files
authored
Merge pull request #118 from markusressel/bugfix/#114-Table-PgUp-sometimes-selects-the-table-header-even-though-the-list-is-not-fully-scrolled-to-the-top-yet-
fix: prevent table header selection on PgUp when not fully scrolled t…
2 parents 4d0bc9a + 017b850 commit 4c1baf0

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

internal/ui/table/table_component.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ type RowSelectionTable[T RowSelectionTableEntry] struct {
5252
entries []*T
5353
entriesMutex sync.Mutex
5454

55+
lastSelectedEntry *T
5556
multiSelectEnabled bool
5657
multiSelectionEntryMap map[string]*T
5758

@@ -119,7 +120,15 @@ func (c *RowSelectionTable[T]) createLayout() {
119120
table.SetSelectable(true, false)
120121
table.SetSelectionChangedFunc(func(row, column int) {
121122
selectedEntry := c.GetSelectedEntry()
123+
124+
if c.lastSelectedEntry != nil && selectedEntry == nil {
125+
// workaround to the table not scrolling to the top when PgUp is pressed and a page jump will
126+
// select the table header row.
127+
table.ScrollToBeginning()
128+
}
122129
c.selectionChangedCallback(selectedEntry)
130+
131+
c.lastSelectedEntry = selectedEntry
123132
})
124133

125134
table.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
@@ -477,3 +486,11 @@ func (c *RowSelectionTable[T]) Down() {
477486
c.layout.Select(row+1, col)
478487
}
479488
}
489+
490+
func (c *RowSelectionTable[T]) PageUp() {
491+
492+
}
493+
494+
func (c *RowSelectionTable[T]) PageDown() {
495+
496+
}

0 commit comments

Comments
 (0)