diff options
| -rw-r--r-- | lib/msgstore.go | 9 | ||||
| -rw-r--r-- | widgets/msglist.go | 3 | 
2 files changed, 9 insertions, 3 deletions
| diff --git a/lib/msgstore.go b/lib/msgstore.go index b0392ba..8cceed8 100644 --- a/lib/msgstore.go +++ b/lib/msgstore.go @@ -10,9 +10,10 @@ import (  // Accesses to fields must be guarded by MessageStore.Lock/Unlock  type MessageStore struct { -	Deleted  map[uint32]interface{} -	DirInfo  models.DirectoryInfo -	Messages map[uint32]*models.MessageInfo +	Deleted          map[uint32]interface{} +	DirInfo          models.DirectoryInfo +	Messages         map[uint32]*models.MessageInfo +	FetchingContents bool  	// Ordered list of known UIDs  	uids []uint32 @@ -159,6 +160,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) {  		store.worker.PostAction(&types.FetchDirectoryContents{  			SortCriteria: store.defaultSortCriteria,  		}, nil) +		store.FetchingContents = true  		update = true  	case *types.DirectoryContents:  		newMap := make(map[uint32]*models.MessageInfo) @@ -172,6 +174,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) {  		}  		store.Messages = newMap  		store.uids = msg.Uids +		store.FetchingContents = false  		update = true  	case *types.MessageInfo:  		if existing, ok := store.Messages[msg.Info.Uid]; ok && existing != nil { diff --git a/widgets/msglist.go b/widgets/msglist.go index 5c2d2f4..729b65f 100644 --- a/widgets/msglist.go +++ b/widgets/msglist.go @@ -61,6 +61,9 @@ func (ml *MessageList) Draw(ctx *ui.Context) {  			ml.drawEmptyMessage(ctx)  			return  		} +	} else if store.FetchingContents { +		ml.spinner.Draw(ctx) +		return  	}  	var ( | 
