[evolution] Bug #611560 - 'Mark as junk' should be disabled in junk folder



commit 7636175248e8b6a8fa73244327f52230415cbaa6
Author: Milan Crha <mcrha redhat com>
Date:   Mon May 3 21:36:50 2010 +0200

    Bug #611560 - 'Mark as junk' should be disabled in junk folder

 mail/e-mail-reader.c |    6 +++++-
 mail/e-mail-reader.h |    3 ++-
 2 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
index fb863b1..5729486 100644
--- a/mail/e-mail-reader.c
+++ b/mail/e-mail-reader.c
@@ -2303,7 +2303,7 @@ mail_reader_update_actions (EMailReader *reader)
 	action_name = "mail-mark-junk";
 	sensitive = selection_has_not_junk_messages;
 	action = e_mail_reader_get_action (reader, action_name);
-	gtk_action_set_sensitive (action, sensitive);
+	gtk_action_set_sensitive (action, sensitive && !(state & E_MAIL_READER_FOLDER_IS_JUNK));
 
 	action_name = "mail-mark-notjunk";
 	sensitive = selection_has_junk_messages;
@@ -2721,6 +2721,7 @@ e_mail_reader_check_state (EMailReader *reader)
 	gboolean drafts_or_outbox;
 	gboolean store_supports_vjunk = FALSE;
 	gboolean is_mailing_list;
+	gboolean is_junk_folder = FALSE;
 	guint32 state = 0;
 	guint ii;
 
@@ -2733,6 +2734,7 @@ e_mail_reader_check_state (EMailReader *reader)
 	if (folder != NULL) {
 		store = camel_folder_get_parent_store (folder);
 		store_supports_vjunk = (store->flags & CAMEL_STORE_VJUNK);
+		is_junk_folder = (folder->folder_flags & CAMEL_FOLDER_IS_JUNK) != 0;
 	}
 
 	drafts_or_outbox =
@@ -2850,6 +2852,8 @@ e_mail_reader_check_state (EMailReader *reader)
 		state |= E_MAIL_READER_SELECTION_HAS_UNREAD;
 	if (is_mailing_list)
 		state |= E_MAIL_READER_SELECTION_IS_MAILING_LIST;
+	if (is_junk_folder)
+		state |= E_MAIL_READER_FOLDER_IS_JUNK;
 
 	em_utils_uids_free (uids);
 
diff --git a/mail/e-mail-reader.h b/mail/e-mail-reader.h
index 8a13223..0b8f30d 100644
--- a/mail/e-mail-reader.h
+++ b/mail/e-mail-reader.h
@@ -75,7 +75,8 @@ enum {
 	E_MAIL_READER_SELECTION_HAS_UNDELETED		= 1 << 12,
 	E_MAIL_READER_SELECTION_HAS_UNIMPORTANT		= 1 << 13,
 	E_MAIL_READER_SELECTION_HAS_UNREAD		= 1 << 14,
-	E_MAIL_READER_SELECTION_IS_MAILING_LIST		= 1 << 15
+	E_MAIL_READER_SELECTION_IS_MAILING_LIST		= 1 << 15,
+	E_MAIL_READER_FOLDER_IS_JUNK			= 1 << 16
 };
 
 struct _EMailReaderIface {



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