about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--lib/indexformat.go10
-rw-r--r--widgets/msglist.go15
2 files changed, 20 insertions, 5 deletions
diff --git a/lib/indexformat.go b/lib/indexformat.go
index 3e139e6..8a329db 100644
--- a/lib/indexformat.go
+++ b/lib/indexformat.go
@@ -171,16 +171,16 @@ func ParseIndexFormat(conf *config.AercConfig, number int,
 			var delFlag = ""
 			var flaggedFlag = ""
 			for _, flag := range msg.Flags {
-				if flag == "\\Seen" {
+				if flag == imap.SeenFlag {
 					readFlag = "O" // message is old
-				} else if flag == "\\Recent" {
+				} else if flag == imap.RecentFlag {
 					readFlag = "N" // message is new
-				} else if flag == "\\Answered" {
+				} else if flag == imap.AnsweredFlag {
 					readFlag = "r" // message has been replied to
-				} else if flag == "\\Deleted" {
+				} else if flag == imap.DeletedFlag {
 					delFlag = "D"
 					// TODO: check if attachments
-				} else if flag == "\\Flagged" {
+				} else if flag == imap.FlaggedFlag {
 					flaggedFlag = "!"
 				}
 				// TODO: check gpg stuff
diff --git a/widgets/msglist.go b/widgets/msglist.go
index 89aa52f..1afe487 100644
--- a/widgets/msglist.go
+++ b/widgets/msglist.go
@@ -4,6 +4,7 @@ import (
 	"fmt"
 	"log"
 
+	"github.com/emersion/go-imap"
 	"github.com/gdamore/tcell"
 	"github.com/mattn/go-runewidth"
 
@@ -75,12 +76,26 @@ func (ml *MessageList) Draw(ctx *ui.Context) {
 		}
 
 		style := tcell.StyleDefault
+
+		// current row
 		if row == ml.selected-ml.scroll {
 			style = style.Reverse(true)
 		}
+		// deleted message
 		if _, ok := store.Deleted[msg.Uid]; ok {
 			style = style.Foreground(tcell.ColorGray)
 		}
+		// unread message
+		seen := false
+		for _, flag := range msg.Flags {
+			if flag == imap.SeenFlag {
+				seen = true
+			}
+		}
+		if !seen {
+			style = style.Bold(true)
+		}
+
 		ctx.Fill(0, row, ctx.Width(), 1, ' ', style)
 		fmtStr, args, err := lib.ParseIndexFormat(ml.conf, i, msg)
 		if err != nil {