aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-folder-cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/mail-folder-cache.c')
-rw-r--r--mail/mail-folder-cache.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c
index b43f33e62c..eb8b016d81 100644
--- a/mail/mail-folder-cache.c
+++ b/mail/mail-folder-cache.c
@@ -529,6 +529,14 @@ store_folder_created(CamelObject *o, void *event_data, void *data)
}
static void
+store_folder_opened(CamelObject *o, void *event_data, void *data)
+{
+ CamelFolder *folder = event_data;
+
+ mail_note_folder(folder);
+}
+
+static void
store_folder_unsubscribed(CamelObject *o, void *event_data, void *data)
{
struct _store_info *si;
@@ -721,6 +729,7 @@ mail_note_store_remove(CamelStore *store)
if (si) {
g_hash_table_remove(stores, store);
+ camel_object_unhook_event(store, "folder_opened", store_folder_opened, NULL);
camel_object_unhook_event(store, "folder_created", store_folder_created, NULL);
camel_object_unhook_event(store, "folder_deleted", store_folder_deleted, NULL);
camel_object_unhook_event(store, "folder_renamed", store_folder_renamed, NULL);
@@ -897,6 +906,7 @@ mail_note_store(CamelStore *store, CamelOperation *op,
g_hash_table_insert(stores, store, si);
e_dlist_init(&si->folderinfo_updates);
+ camel_object_hook_event(store, "folder_opened", store_folder_opened, NULL);
camel_object_hook_event(store, "folder_created", store_folder_created, NULL);
camel_object_hook_event(store, "folder_deleted", store_folder_deleted, NULL);
camel_object_hook_event(store, "folder_renamed", store_folder_renamed, NULL);