archive,move: fix reselect next message
Move and Archive used store.Next to select the next message. When moving or archiving multiple messages with an upward movement, this would result in a to-be-removed message being selected. Use findNextNonDeleted function to select the correct next message for these commands. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
This commit is contained in:
parent
56dabb5c9c
commit
894668aec2
2 changed files with 6 additions and 2 deletions
|
@ -53,9 +53,13 @@ func (Archive) Execute(aerc *widgets.Aerc, args []string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
archiveDir := acct.AccountConfig().Archive
|
archiveDir := acct.AccountConfig().Archive
|
||||||
store.Next()
|
var uids []uint32
|
||||||
|
for _, msg := range msgs {
|
||||||
|
uids = append(uids, msg.Uid)
|
||||||
|
}
|
||||||
store.ClearVisualMark()
|
store.ClearVisualMark()
|
||||||
acct.Messages().Invalidate()
|
acct.Messages().Invalidate()
|
||||||
|
findNextNonDeleted(uids, store)
|
||||||
|
|
||||||
var uidMap map[string][]uint32
|
var uidMap map[string][]uint32
|
||||||
switch args[1] {
|
switch args[1] {
|
||||||
|
|
|
@ -61,9 +61,9 @@ func (Move) Execute(aerc *widgets.Aerc, args []string) error {
|
||||||
if isMsgView {
|
if isMsgView {
|
||||||
aerc.RemoveTab(h.msgProvider)
|
aerc.RemoveTab(h.msgProvider)
|
||||||
}
|
}
|
||||||
store.Next()
|
|
||||||
store.ClearVisualMark()
|
store.ClearVisualMark()
|
||||||
acct.Messages().Invalidate()
|
acct.Messages().Invalidate()
|
||||||
|
findNextNonDeleted(uids, store)
|
||||||
joinedArgs := strings.Join(args[optind:], " ")
|
joinedArgs := strings.Join(args[optind:], " ")
|
||||||
store.Move(uids, joinedArgs, createParents, func(
|
store.Move(uids, joinedArgs, createParents, func(
|
||||||
msg types.WorkerMessage) {
|
msg types.WorkerMessage) {
|
||||||
|
|
Loading…
Reference in a new issue