aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/e-shell.c')
-rw-r--r--shell/e-shell.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/shell/e-shell.c b/shell/e-shell.c
index a91c06dbe7..f617fe27ad 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -60,6 +60,7 @@ shell_shutdown_timeout (void)
static guint source_id = 0;
static guint message_timer = 1;
+ /* Module list is read-only; do not free. */
list = e_shell_registry_list_modules ();
/* Any module can defer shutdown if it's still busy. */
@@ -79,8 +80,6 @@ shell_shutdown_timeout (void)
message_timer = (message_timer + 1) % 10;
- g_list_free (list);
-
/* If we're go for shutdown, destroy all shell windows. Note,
* we iterate over a /copy/ of the active windows list because
* the act of destroying a shell window will modify the active
@@ -118,6 +117,10 @@ e_shell_create_window (void)
G_OBJECT (shell_window), (GWeakNotify)
shell_window_weak_notify_cb, NULL);
+ g_list_foreach (
+ e_shell_registry_list_modules (),
+ (GFunc) e_shell_module_window_created, shell_window);
+
gtk_widget_show (shell_window);
return E_SHELL_WINDOW (shell_window);
@@ -162,7 +165,9 @@ e_shell_handle_uri (const gchar *uri)
void
e_shell_send_receive (GtkWindow *parent)
{
- /* FIXME */
+ g_list_foreach (
+ e_shell_registry_list_modules (),
+ (GFunc) e_shell_module_send_and_receive, NULL);
}
void