diff options
| author | Drew DeVault <sir@cmpwn.com> | 2019-05-19 18:21:02 -0400 | 
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2019-05-19 18:21:02 -0400 | 
| commit | fa5d8d7a007aa0030a4b2bfb122dabab3e69ad4b (patch) | |
| tree | e8ac0af8b0699528d048c6dd7bc7c89b0c6ca52b | |
| parent | f9251c2344d7a7d9661fdefa66734dceefba8488 (diff) | |
Advance cursor after :delete and :move
So that you can repeat the action on the next message if appropriate
| -rw-r--r-- | commands/account/delete-message.go | 1 | ||||
| -rw-r--r-- | commands/account/move.go | 1 | ||||
| -rw-r--r-- | widgets/msglist.go | 9 | 
3 files changed, 7 insertions, 4 deletions
diff --git a/commands/account/delete-message.go b/commands/account/delete-message.go index 2ad470b..d6b669e 100644 --- a/commands/account/delete-message.go +++ b/commands/account/delete-message.go @@ -24,6 +24,7 @@ func DeleteMessage(aerc *widgets.Aerc, args []string) error {  	}  	store := acct.Messages().Store()  	msg := acct.Messages().Selected() +	acct.Messages().Next()  	store.Delete([]uint32{msg.Uid}, func(msg types.WorkerMessage) {  		switch msg := msg.(type) {  		case *types.Done: diff --git a/commands/account/move.go b/commands/account/move.go index d4978ac..d58a279 100644 --- a/commands/account/move.go +++ b/commands/account/move.go @@ -25,6 +25,7 @@ func Move(aerc *widgets.Aerc, args []string) error {  	}  	msg := acct.Messages().Selected()  	store := acct.Messages().Store() +	acct.Messages().Next()  	store.Move([]uint32{msg.Uid}, args[1], func(msg types.WorkerMessage) {  		switch msg := msg.(type) {  		case *types.Done: diff --git a/widgets/msglist.go b/widgets/msglist.go index f7398dc..caa868f 100644 --- a/widgets/msglist.go +++ b/widgets/msglist.go @@ -109,10 +109,6 @@ func (ml *MessageList) storeUpdate(store *lib.MessageStore) {  	}  	if len(store.Uids) > 0 { -		// Prevent selecting beyond the last message -		for ml.selected >= len(store.Uids) { -			ml.Prev() -		}  		// When new messages come in, advance the cursor accordingly  		// Note that this assumes new messages are appended to the top, which  		// isn't necessarily true once we implement SORT... ideally we'd look @@ -122,6 +118,11 @@ func (ml *MessageList) storeUpdate(store *lib.MessageStore) {  				ml.Next()  			}  		} +		if len(store.Uids) < ml.nmsgs && ml.nmsgs != 0 { +			for i := 0; i < ml.nmsgs-len(store.Uids); i++ { +				ml.Prev() +			} +		}  		ml.nmsgs = len(store.Uids)  	}  | 
