aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--worker/notmuch/message.go27
1 files changed, 10 insertions, 17 deletions
diff --git a/worker/notmuch/message.go b/worker/notmuch/message.go
index b6d7f54c..f78adeff 100644
--- a/worker/notmuch/message.go
+++ b/worker/notmuch/message.go
@@ -99,27 +99,20 @@ func (m *Message) SetFlag(flag models.Flags, enable bool) error {
break
}
}
+
if flag == models.SeenFlag {
- oldState = !oldState
+ // Invert the operation since notmuch uses unread tags instead
+ // of seen tags
+ enable = !enable
}
- // Skip if flag already in correct state.
- if oldState == enable {
+ switch {
+ case oldState == enable:
return nil
- }
-
- if !enable {
- if flag == models.SeenFlag {
- return m.AddTag("unread")
- } else {
- return m.RemoveTag(tag)
- }
- } else {
- if flag == models.SeenFlag {
- return m.RemoveTag("unread")
- } else {
- return m.AddTag(tag)
- }
+ case enable:
+ return m.AddTag(tag)
+ default:
+ return m.RemoveTag(tag)
}
}