summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorakspecs <akspecs@gmail.com>2022-07-23 21:03:44 -0500
committerRobin Jarry <robin@jarry.cc>2022-07-24 23:05:07 +0200
commit0f86666f52620051aaf10cc85c4cacc20af383cb (patch)
tree23bfa97c724ef8f3758cd195440c423e571e7728
parent4036f696ad359d503922c67b3a32d212a1bda987 (diff)
downloadaerc-0f86666f52620051aaf10cc85c4cacc20af383cb.zip
msgstore: check if message index < 0, select 0 if so
Calling :prev without this check can cause the index to go below 0 if the current index is smaller than the value being scrolled / incremented by. This results in the email selector wrapping around from the top to the bottom most email in the mailbox folder due to changes in ec150f0 'store: fix Select behaviour'. Signed-off-by: akspecs <akspecs@gmail.com> Acked-by: Robin Jarry <robin@jarry.cc>
-rw-r--r--lib/msgstore.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/msgstore.go b/lib/msgstore.go
index 3a78e9e..34c2676 100644
--- a/lib/msgstore.go
+++ b/lib/msgstore.go
@@ -676,7 +676,11 @@ func (store *MessageStore) NextPrev(delta int) {
return
}
idx := store.SelectedIndex() + delta
- store.Select(idx)
+ if idx < 0 {
+ store.Select(0)
+ } else {
+ store.Select(idx)
+ }
store.updateVisual()
nextResultIndex := len(store.results) - store.resultIndex - 2*delta
if nextResultIndex < 0 || nextResultIndex >= len(store.results) {