aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/e-mail-backend.c14
-rw-r--r--mail/e-mail-reader-utils.c2
-rw-r--r--mail/em-folder-properties.c10
3 files changed, 11 insertions, 15 deletions
diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c
index c2952daffd..b7fb84735e 100644
--- a/mail/e-mail-backend.c
+++ b/mail/e-mail-backend.c
@@ -673,24 +673,14 @@ mail_backend_folder_changed_cb (MailFolderCache *folder_cache,
EMEvent *event = em_event_peek ();
EMEventTargetFolder *target;
EMFolderTreeModel *model;
- CamelFolder *folder;
gchar *folder_uri;
gint folder_type;
CamelFolderInfoFlags flags = 0;
folder_uri = e_mail_folder_uri_build (store, folder_name);
- folder = mail_folder_cache_ref_folder (
- folder_cache, store, folder_name);
- if (folder != NULL) {
- /* XXX Need to rethink this API. Why should we
- * need the CamelFolder instance just to get
- * folder flags? The flags are more readily
- * available than the CamelFolder instance. */
- mail_folder_cache_get_folder_info_flags (
- folder_cache, folder, &flags);
- g_object_unref (folder);
- }
+ mail_folder_cache_get_folder_info_flags (
+ folder_cache, store, folder_name, &flags);
target = em_event_target_new_folder (
event, store, folder_uri, new_messages,
diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c
index 2a3c4c6a8c..acd52950c8 100644
--- a/mail/e-mail-reader-utils.c
+++ b/mail/e-mail-reader-utils.c
@@ -260,7 +260,7 @@ e_mail_reader_delete_folder (EMailReader *reader,
}
have_flags = mail_folder_cache_get_folder_info_flags (
- folder_cache, folder, &flags);
+ folder_cache, parent_store, full_name, &flags);
if (have_flags && (flags & CAMEL_FOLDER_SYSTEM)) {
e_alert_submit (
diff --git a/mail/em-folder-properties.c b/mail/em-folder-properties.c
index 526dc89068..d50888fea9 100644
--- a/mail/em-folder-properties.c
+++ b/mail/em-folder-properties.c
@@ -193,18 +193,24 @@ emfp_get_folder_item (EConfig *ec,
CamelStore *store;
CamelSession *session;
CamelFolderInfoFlags fi_flags = 0;
+ const gchar *folder_name;
MailFolderCache *folder_cache;
+ gboolean have_flags;
store = camel_folder_get_parent_store (context->folder);
+ folder_name = camel_folder_get_full_name (context->folder);
+
session = camel_service_ref_session (CAMEL_SERVICE (store));
folder_cache = e_mail_session_get_folder_cache (
E_MAIL_SESSION (session));
+ have_flags = mail_folder_cache_get_folder_info_flags (
+ folder_cache, store, folder_name, &fi_flags);
+
can_apply_filters =
!CAMEL_IS_VEE_FOLDER (context->folder) &&
- mail_folder_cache_get_folder_info_flags (
- folder_cache, context->folder, &fi_flags) &&
+ have_flags &&
(fi_flags & CAMEL_FOLDER_TYPE_MASK) != CAMEL_FOLDER_TYPE_INBOX;
g_object_unref (session);