diff options
author | Daniel Milde <daniel@milde.cz> | 2024-03-30 00:13:35 +0100 |
---|---|---|
committer | Daniel Milde <daniel@milde.cz> | 2024-03-30 22:50:14 +0100 |
commit | 7bfeb985f4d687a05781d4f870a128990b0c6638 (patch) | |
tree | 527989c3c764874f7a7bfecb1b50de83e2b8c4ca | |
parent | d511c557bd2f745a3ca09d8677c09cf5386dbdbb (diff) |
fix: keep table offset on deletion
-rw-r--r-- | tui/actions.go | 2 | ||||
-rw-r--r-- | tui/marked.go | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/tui/actions.go b/tui/actions.go index ad3944e..613cfe8 100644 --- a/tui/actions.go +++ b/tui/actions.go @@ -221,8 +221,10 @@ func (ui *UI) deleteSelected(shouldEmpty bool) { ui.app.QueueUpdateDraw(func() { ui.pages.RemovePage(acting) + x, y := ui.table.GetOffset() ui.showDir() ui.table.Select(min(row, ui.table.GetRowCount()-1), 0) + ui.table.SetOffset(min(x, ui.table.GetRowCount()-1), y) }) if ui.done != nil { diff --git a/tui/marked.go b/tui/marked.go index 3c350ee..f41ebc6 100644 --- a/tui/marked.go +++ b/tui/marked.go @@ -93,8 +93,10 @@ func (ui *UI) deleteMarked(shouldEmpty bool) { ui.app.QueueUpdateDraw(func() { ui.pages.RemovePage(acting) ui.markedRows = make(map[int]struct{}) + x, y := ui.table.GetOffset() ui.showDir() ui.table.Select(min(currentRow, ui.table.GetRowCount()-1), 0) + ui.table.SetOffset(min(x, ui.table.GetRowCount()-1), y) }) if ui.done != nil { |