From 744f785a9c70b860a23c9d8982e755caf99c9b2c Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 4 Mar 2011 10:00:26 +0100 Subject: Do not flush Outbox when mail shell backend not started --- mail/e-mail-backend.c | 5 ++++- shell/e-shell-backend.c | 15 +++++++++++++++ shell/e-shell-backend.h | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c index d0631b13dd..fb2a384796 100644 --- a/mail/e-mail-backend.c +++ b/mail/e-mail-backend.c @@ -280,7 +280,7 @@ mail_backend_prepare_for_quit_cb (EShell *shell, static void mail_backend_quit_requested_cb (EShell *shell, EShellQuitReason reason, - EShellBackend *shell_backend) + EShellBackend *mail_shell_backend) { CamelFolder *folder; GtkWindow *window; @@ -301,6 +301,9 @@ mail_backend_quit_requested_cb (EShell *shell, strcmp(e_shell_window_get_active_view((EShellWindow *)window), "mail") != 0) return; + if (!e_shell_backend_is_started (mail_shell_backend)) + return; + /* Check Outbox for any unsent messages. */ folder = e_mail_local_get_folder (E_MAIL_LOCAL_FOLDER_OUTBOX); diff --git a/shell/e-shell-backend.c b/shell/e-shell-backend.c index cd672842f1..03acc0ef04 100644 --- a/shell/e-shell-backend.c +++ b/shell/e-shell-backend.c @@ -507,6 +507,21 @@ e_shell_backend_start (EShellBackend *shell_backend) shell_backend->priv->started = TRUE; } +/** + * e_shell_backend_is_started: + * @shell_backend: an #EShellBackend + * + * Returns whether was shelll_backend already started, by + * calling e_shell_backend_start(). + **/ +gboolean +e_shell_backend_is_started (EShellBackend *shell_backend) +{ + g_return_val_if_fail (E_IS_SHELL_BACKEND (shell_backend), FALSE); + + return shell_backend->priv->started; +} + /** * e_shell_backend_migrate: * @shell_backend: an #EShellBackend diff --git a/shell/e-shell-backend.h b/shell/e-shell-backend.h index 1810c8c6e5..3364b16589 100644 --- a/shell/e-shell-backend.h +++ b/shell/e-shell-backend.h @@ -127,6 +127,7 @@ void e_shell_backend_add_activity (EShellBackend *shell_backend, gboolean e_shell_backend_is_busy (EShellBackend *shell_backend); void e_shell_backend_cancel_all (EShellBackend *shell_backend); void e_shell_backend_start (EShellBackend *shell_backend); +gboolean e_shell_backend_is_started (EShellBackend *shell_backend); gboolean e_shell_backend_migrate (EShellBackend *shell_backend, gint major, gint minor, -- cgit v1.2.3