diff options
author | Matthew Barnes <mbarnes@src.gnome.org> | 2009-01-29 01:19:34 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@src.gnome.org> | 2009-01-29 01:19:34 +0800 |
commit | 533d59e2cd30ba79a99a71907ffdda65505e633a (patch) | |
tree | ba6f611ce6a1bb9d3dfb98a6a6a670cf99a55b9d /shell/e-shell-window.c | |
parent | 3e339d5ecc63d912840c6f885460c58f60eb85e0 (diff) | |
download | gsoc2013-evolution-533d59e2cd30ba79a99a71907ffdda65505e633a.tar.gz gsoc2013-evolution-533d59e2cd30ba79a99a71907ffdda65505e633a.tar.zst gsoc2013-evolution-533d59e2cd30ba79a99a71907ffdda65505e633a.zip |
Add unique-1.0 requirement (blessed external dependency).
Make EShell a subclass of UniqueApp and handle single-instance negotiation.
When another Evolution process is running:
- Running "evolution" will simply present the existing windows.
- Running "evolution -c <view>" will open a shell window set to <view>.
- Running "evolution <uri>" will open an appropriate window for <uri>.
The second process will then terminate immediately.
svn path=/branches/kill-bonobo/; revision=37147
Diffstat (limited to 'shell/e-shell-window.c')
-rw-r--r-- | shell/e-shell-window.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/shell/e-shell-window.c b/shell/e-shell-window.c index 3272b524e7..82727fecdd 100644 --- a/shell/e-shell-window.c +++ b/shell/e-shell-window.c @@ -153,7 +153,12 @@ shell_window_set_shell (EShellWindow *shell_window, gulong handler_id; g_return_if_fail (shell_window->priv->shell == NULL); - shell_window->priv->shell = g_object_ref (shell); + + shell_window->priv->shell = shell; + + g_object_add_weak_pointer ( + G_OBJECT (shell_window), + &shell_window->priv->shell); /* Need to disconnect these when the window is closing. */ @@ -435,7 +440,7 @@ e_shell_window_get_shell (EShellWindow *shell_window) { g_return_val_if_fail (E_IS_SHELL_WINDOW (shell_window), NULL); - return shell_window->priv->shell; + return E_SHELL (shell_window->priv->shell); } /** |