aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-backend.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/e-mail-backend.c')
-rw-r--r--mail/e-mail-backend.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c
index b2e22e397d..14a7d22ad3 100644
--- a/mail/e-mail-backend.c
+++ b/mail/e-mail-backend.c
@@ -368,6 +368,17 @@ mail_backend_folder_changed_cb (MailFolderCache *folder_cache,
(EEventTarget *) target);
}
+static gboolean
+mail_backend_idle_cb (EShellBackend *shell_backend)
+{
+ const gchar *data_dir;
+
+ data_dir = e_shell_backend_get_data_dir (shell_backend);
+ e_mail_store_init (data_dir);
+
+ return FALSE;
+}
+
static void
mail_backend_constructed (GObject *object)
{
@@ -422,8 +433,9 @@ mail_backend_constructed (GObject *object)
mail_config_init ();
mail_msg_init ();
- data_dir = e_shell_backend_get_data_dir (shell_backend);
- e_mail_store_init (data_dir);
+ /* Defer initializing CamelStores until after the main loop
+ * has started, so migration has a chance to run first. */
+ g_idle_add ((GSourceFunc) mail_backend_idle_cb, shell_backend);
}
static void