diff options
author | akspecs <akspecs@gmail.com> | 2022-07-23 21:03:44 -0500 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2022-07-24 23:05:07 +0200 |
commit | 0f86666f52620051aaf10cc85c4cacc20af383cb (patch) | |
tree | 23bfa97c724ef8f3758cd195440c423e571e7728 | |
parent | 4036f696ad359d503922c67b3a32d212a1bda987 (diff) | |
download | aerc-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.go | 6 |
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) { |