summary refs log tree commit diff stats
path: root/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'widgets')
-rw-r--r--widgets/msglist.go9
1 files changed, 5 insertions, 4 deletions
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)
 	}