aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog9
-rw-r--r--mail/component-factory.c4
-rw-r--r--mail/mail-local.c6
-rw-r--r--mail/mail-ops.c2
4 files changed, 17 insertions, 4 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 84ec972536..15e91aa75d 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,5 +1,14 @@
2001-09-19 <NotZed@Ximian.com>
+ * component-factory.c: Added missing header.
+
+ * mail-local.c (mail_local_store_add_folder): Async load the
+ folder we just added, so it can update the folder counts in the
+ display. We just discard the folder afterwards?
+
+ * mail-ops.c (mail_get_folder): Use the queued thread to get
+ folders.
+
* General cleanup of mail debug printfs.
* mail-folder-cache.[ch]: Completely rewritten. Removed all calls
diff --git a/mail/component-factory.c b/mail/component-factory.c
index 89a615f9bd..2f9913078d 100644
--- a/mail/component-factory.c
+++ b/mail/component-factory.c
@@ -48,6 +48,7 @@
#include "mail-mt.h"
#include "mail-importer.h"
#include "mail-vfolder.h" /* vfolder_create_storage */
+#include "mail-folder-cache.h"
#include "component-factory.h"
@@ -990,9 +991,6 @@ add_storage (const char *name, const char *uri, CamelService *store,
switch (res) {
case EVOLUTION_STORAGE_OK:
mail_hash_storage (store, storage);
-/*
- mail_scan_subfolders (CAMEL_STORE (store), storage);
-*/
mail_note_store((CamelStore *)store);
/* falllll */
case EVOLUTION_STORAGE_ERROR_ALREADYREGISTERED:
diff --git a/mail/mail-local.c b/mail/mail-local.c
index 26ba476dd1..dcc6567638 100644
--- a/mail/mail-local.c
+++ b/mail/mail-local.c
@@ -55,6 +55,7 @@
#include "mail-mt.h"
#include "mail-folder-cache.h"
#include "mail-vfolder.h"
+#include "mail-ops.h"
#define d(x)
@@ -826,7 +827,12 @@ static void mail_local_store_add_folder(MailLocalStore *mls, const char *uri, co
d(printf("adding folder: '%s' path = '%s'\n", info->url, path));
+ /* FIXME: should copy info, so we dont get a removed while we're using it? */
camel_object_trigger_event((CamelObject *)mls, "folder_created", info);
+
+ /* this is just so the folder is opened at least once to setup the folder
+ counts etc in the display. Joy eh? The result is discarded. */
+ mail_get_folder(uri, NULL, NULL);
}
struct _search_info {
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index 09d857923e..89967b7488 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -1324,7 +1324,7 @@ mail_get_folder (const char *uri, void (*done) (char *uri, CamelFolder *folder,
m->done = done;
id = m->msg.seq;
- e_thread_put (mail_thread_new, (EMsg *)m);
+ e_thread_put (mail_thread_queued, (EMsg *)m);
return id;
}