summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Milde <daniel@milde.cz>2024-03-30 00:13:35 +0100
committerDaniel Milde <daniel@milde.cz>2024-03-30 22:50:14 +0100
commit7bfeb985f4d687a05781d4f870a128990b0c6638 (patch)
tree527989c3c764874f7a7bfecb1b50de83e2b8c4ca
parentd511c557bd2f745a3ca09d8677c09cf5386dbdbb (diff)
fix: keep table offset on deletion
-rw-r--r--tui/actions.go2
-rw-r--r--tui/marked.go2
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 {