aboutsummaryrefslogtreecommitdiffstats
path: root/shell/main.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@src.gnome.org>2009-01-29 06:28:57 +0800
committerMatthew Barnes <mbarnes@src.gnome.org>2009-01-29 06:28:57 +0800
commit70fce0bbb0712dc70a15c481c0b65d68a98a4ff7 (patch)
tree51b39245f74e32ac2878e4f65492e895a1ad0eb8 /shell/main.c
parent533d59e2cd30ba79a99a71907ffdda65505e633a (diff)
downloadgsoc2013-evolution-70fce0bbb0712dc70a15c481c0b65d68a98a4ff7.tar
gsoc2013-evolution-70fce0bbb0712dc70a15c481c0b65d68a98a4ff7.tar.gz
gsoc2013-evolution-70fce0bbb0712dc70a15c481c0b65d68a98a4ff7.tar.bz2
gsoc2013-evolution-70fce0bbb0712dc70a15c481c0b65d68a98a4ff7.tar.lz
gsoc2013-evolution-70fce0bbb0712dc70a15c481c0b65d68a98a4ff7.tar.xz
gsoc2013-evolution-70fce0bbb0712dc70a15c481c0b65d68a98a4ff7.tar.zst
gsoc2013-evolution-70fce0bbb0712dc70a15c481c0b65d68a98a4ff7.zip
When invoking Evolution with URIs on the command-line (e.g. mailto:),
terminate after all the windows for those URIs have been closed. svn path=/branches/kill-bonobo/; revision=37157
Diffstat (limited to 'shell/main.c')
-rw-r--r--shell/main.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/shell/main.c b/shell/main.c
index 670b24d1a2..ce1b467754 100644
--- a/shell/main.c
+++ b/shell/main.c
@@ -306,7 +306,6 @@ static gboolean
idle_cb (gchar **uris)
{
EShell *shell;
- guint ii;
#ifdef KILL_PROCESS_CMD
kill_old_dataserver ();
@@ -314,23 +313,21 @@ idle_cb (gchar **uris)
shell = e_shell_get_default ();
- /* These calls do the right thing when there's another
- * Evolution process running. */
+ /* These calls do the right thing when another Evolution
+ * process is running. */
if (uris != NULL && *uris != NULL)
e_shell_handle_uris (shell, uris);
else
e_shell_create_shell_window (shell, requested_view);
- if (unique_app_is_running (UNIQUE_APP (shell))) {
+ /* If another Evolution process is running, we're done. */
+ if (unique_app_is_running (UNIQUE_APP (shell)))
gtk_main_quit ();
- return FALSE;
- }
/* This must be done after EShell has loaded all the modules.
* For example the mail module makes the global variable `session`
* which is being used by several EPlugins */
-
- if (uris == NULL && !disable_eplugin)
+ else if (uris == NULL && !disable_eplugin)
e_plugin_load_plugins_with_missing_symbols ();
return FALSE;
@@ -471,7 +468,7 @@ set_paths (void)
static void
shell_window_destroyed_cb (EShell *shell)
{
- if (e_shell_get_shell_windows (shell) == NULL)
+ if (e_shell_get_watched_windows (shell) == NULL)
gtk_main_quit ();
}