aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2011-03-04 17:00:26 +0800
committerMilan Crha <mcrha@redhat.com>2011-03-04 17:00:26 +0800
commit744f785a9c70b860a23c9d8982e755caf99c9b2c (patch)
tree10f8c124769b99fdbd5224f80df40afdcf6c1d4e
parentf1e416438026e495a29ca36715e27964f7dc4b04 (diff)
downloadgsoc2013-evolution-744f785a9c70b860a23c9d8982e755caf99c9b2c.tar.gz
gsoc2013-evolution-744f785a9c70b860a23c9d8982e755caf99c9b2c.tar.zst
gsoc2013-evolution-744f785a9c70b860a23c9d8982e755caf99c9b2c.zip
Do not flush Outbox when mail shell backend not started
-rw-r--r--mail/e-mail-backend.c5
-rw-r--r--shell/e-shell-backend.c15
-rw-r--r--shell/e-shell-backend.h1
3 files changed, 20 insertions, 1 deletions
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
@@ -508,6 +508,21 @@ e_shell_backend_start (EShellBackend *shell_backend)
}
/**
+ * 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
* @major: major part of version to migrate from
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,