From 70fce0bbb0712dc70a15c481c0b65d68a98a4ff7 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 28 Jan 2009 22:28:57 +0000 Subject: 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 --- calendar/modules/e-cal-shell-module.c | 19 +++++++++++-------- calendar/modules/e-memo-shell-module.c | 19 +++++++++++-------- calendar/modules/e-task-shell-module.c | 19 +++++++++++-------- 3 files changed, 33 insertions(+), 24 deletions(-) (limited to 'calendar/modules') diff --git a/calendar/modules/e-cal-shell-module.c b/calendar/modules/e-cal-shell-module.c index d4fed663be..176b8d04bc 100644 --- a/calendar/modules/e-cal-shell-module.c +++ b/calendar/modules/e-cal-shell-module.c @@ -423,27 +423,30 @@ cal_module_init_preferences (void) } static gboolean -cal_module_handle_uri (EShellModule *shell_module, - const gchar *uri) +cal_module_handle_uri_cb (EShellModule *shell_module, + const gchar *uri) { /* FIXME */ return FALSE; } static void -cal_module_window_created (EShellModule *shell_module, - EShellWindow *shell_window) +cal_module_window_created_cb (EShellModule *shell_module, + GtkWindow *window) { const gchar *module_name; + if (!E_IS_SHELL_WINDOW (window)) + return; + module_name = G_TYPE_MODULE (shell_module)->name; e_shell_window_register_new_item_actions ( - shell_window, module_name, + E_SHELL_WINDOW (window), module_name, item_entries, G_N_ELEMENTS (item_entries)); e_shell_window_register_new_source_actions ( - shell_window, module_name, + E_SHELL_WINDOW (window), module_name, source_entries, G_N_ELEMENTS (source_entries)); } @@ -476,11 +479,11 @@ e_shell_module_init (GTypeModule *type_module) g_signal_connect_swapped ( shell, "handle-uri", - G_CALLBACK (cal_module_handle_uri), shell_module); + G_CALLBACK (cal_module_handle_uri_cb), shell_module); g_signal_connect_swapped ( shell, "window-created", - G_CALLBACK (cal_module_window_created), shell_module); + G_CALLBACK (cal_module_window_created_cb), shell_module); cal_module_init_preferences (); } diff --git a/calendar/modules/e-memo-shell-module.c b/calendar/modules/e-memo-shell-module.c index a82a8c5235..5e8f9a53bf 100644 --- a/calendar/modules/e-memo-shell-module.c +++ b/calendar/modules/e-memo-shell-module.c @@ -306,8 +306,8 @@ static GtkActionEntry source_entries[] = { }; static gboolean -memo_module_handle_uri (EShellModule *shell_module, - const gchar *uri) +memo_module_handle_uri_cb (EShellModule *shell_module, + const gchar *uri) { CompEditor *editor; CompEditorFlags flags = 0; @@ -443,19 +443,22 @@ exit: } static void -memo_module_window_created (EShellModule *shell_module, - EShellWindow *shell_window) +memo_module_window_created_cb (EShellModule *shell_module, + GtkWindow *window) { const gchar *module_name; + if (!E_IS_SHELL_WINDOW (window)) + return; + module_name = G_TYPE_MODULE (shell_module)->name; e_shell_window_register_new_item_actions ( - shell_window, module_name, + E_SHELL_WINDOW (window), module_name, item_entries, G_N_ELEMENTS (item_entries)); e_shell_window_register_new_source_actions ( - shell_window, module_name, + E_SHELL_WINDOW (window), module_name, source_entries, G_N_ELEMENTS (source_entries)); } @@ -488,9 +491,9 @@ e_shell_module_init (GTypeModule *type_module) g_signal_connect_swapped ( shell, "handle-uri", - G_CALLBACK (memo_module_handle_uri), shell_module); + G_CALLBACK (memo_module_handle_uri_cb), shell_module); g_signal_connect_swapped ( shell, "window-created", - G_CALLBACK (memo_module_window_created), shell_module); + G_CALLBACK (memo_module_window_created_cb), shell_module); } diff --git a/calendar/modules/e-task-shell-module.c b/calendar/modules/e-task-shell-module.c index 80cfc0a61a..76db5b056b 100644 --- a/calendar/modules/e-task-shell-module.c +++ b/calendar/modules/e-task-shell-module.c @@ -306,8 +306,8 @@ static GtkActionEntry source_entries[] = { }; static gboolean -task_module_handle_uri (EShellModule *shell_module, - const gchar *uri) +task_module_handle_uri_cb (EShellModule *shell_module, + const gchar *uri) { CompEditor *editor; CompEditorFlags flags = 0; @@ -449,19 +449,22 @@ exit: } static void -task_module_window_created (EShellModule *shell_module, - EShellWindow *shell_window) +task_module_window_created_cb (EShellModule *shell_module, + GtkWindow *window) { const gchar *module_name; + if (!E_IS_SHELL_WINDOW (window)) + return; + module_name = G_TYPE_MODULE (shell_module)->name; e_shell_window_register_new_item_actions ( - shell_window, module_name, + E_SHELL_WINDOW (window), module_name, item_entries, G_N_ELEMENTS (item_entries)); e_shell_window_register_new_source_actions ( - shell_window, module_name, + E_SHELL_WINDOW (window), module_name, source_entries, G_N_ELEMENTS (source_entries)); } @@ -494,9 +497,9 @@ e_shell_module_init (GTypeModule *type_module) g_signal_connect_swapped ( shell, "handle-uri", - G_CALLBACK (task_module_handle_uri), shell_module); + G_CALLBACK (task_module_handle_uri_cb), shell_module); g_signal_connect_swapped ( shell, "window-created", - G_CALLBACK (task_module_window_created), shell_module); + G_CALLBACK (task_module_window_created_cb), shell_module); } -- cgit v1.2.3