[geary] Don't show Mark as Unread when it'd be a no-op



commit 9f047ce9c2603cd335f8cd1acee292f0c6a38d8f
Author: Charles Lindsay <chaz yorba org>
Date:   Thu Mar 13 17:03:29 2014 -0700

    Don't show Mark as Unread when it'd be a no-op
    
    Closes: bgo #726274

 src/client/application/geary-controller.vala |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/src/client/application/geary-controller.vala b/src/client/application/geary-controller.vala
index f82f56e..01b2d47 100644
--- a/src/client/application/geary-controller.vala
+++ b/src/client/application/geary-controller.vala
@@ -1423,7 +1423,13 @@ public class GearyController : Geary.BaseObject {
         foreach (Geary.App.Conversation conversation in selected_conversations) {
             if (conversation.is_unread())
                 unread_selected = true;
-            if (conversation.has_any_read_message())
+            
+            // Only check the messages that "Mark as Unread" would mark, so we
+            // don't add the menu option and have it not do anything.
+            Geary.Email? latest = conversation.get_latest_email(
+                Geary.App.Conversation.Location.IN_FOLDER_OUT_OF_FOLDER);
+            if (latest != null && latest.email_flags != null
+                && !latest.email_flags.contains(Geary.EmailFlags.UNREAD))
                 read_selected = true;
 
             if (conversation.is_flagged()) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]