aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/e-shell-module.c4
-rw-r--r--shell/e-shell-module.h2
-rw-r--r--shell/e-shell-window.c6
-rw-r--r--shell/e-shell-window.h1
-rw-r--r--shell/e-shell.c13
5 files changed, 20 insertions, 6 deletions
diff --git a/shell/e-shell-module.c b/shell/e-shell-module.c
index 39ad1ce847..7a006fe9d4 100644
--- a/shell/e-shell-module.c
+++ b/shell/e-shell-module.c
@@ -299,6 +299,8 @@ e_shell_module_set_info (EShellModule *shell_module,
shell_module->priv->info.schemas = g_intern_string (info->schemas);
shell_module->priv->info.shell_view_type = info->shell_view_type;
- shell_module->priv->info.request_quit = info->request_quit;
+ shell_module->priv->info.is_busy = info->is_busy;
+ shell_module->priv->info.shutdown = info->shutdown;
+ shell_module->priv->info.send_and_receive = info->send_and_receive;
shell_module->priv->info.window_created = info->window_created;
}
diff --git a/shell/e-shell-module.h b/shell/e-shell-module.h
index 90e4be977d..b93a77a89d 100644
--- a/shell/e-shell-module.h
+++ b/shell/e-shell-module.h
@@ -79,7 +79,7 @@ const gchar * e_shell_module_get_filename (EShellModule *shell_module);
GType e_shell_module_get_view_type (EShellModule *shell_module);
gboolean e_shell_module_is_busy (EShellModule *shell_module);
gboolean e_shell_module_shutdown (EShellModule *shell_module);
-void e_shell_module_send_and_receive (EShellModlue *shell_module);
+void e_shell_module_send_and_receive (EShellModule *shell_module);
void e_shell_module_window_created (EShellModule *shell_module,
EShellWindow *shell_window);
void e_shell_module_set_info (EShellModule *shell_module,
diff --git a/shell/e-shell-window.c b/shell/e-shell-window.c
index 5a8215df97..81d2b82f5f 100644
--- a/shell/e-shell-window.c
+++ b/shell/e-shell-window.c
@@ -115,6 +115,12 @@ e_shell_window_get_type (void)
return type;
}
+GtkWidget *
+e_shell_window_new (void)
+{
+ return g_object_new (E_TYPE_SHELL_WINDOW, NULL);
+}
+
GtkUIManager *
e_shell_window_get_ui_manager (EShellWindow *window)
{
diff --git a/shell/e-shell-window.h b/shell/e-shell-window.h
index 17e1a172ee..c423a43c92 100644
--- a/shell/e-shell-window.h
+++ b/shell/e-shell-window.h
@@ -59,6 +59,7 @@ struct _EShellWindowClass {
};
GType e_shell_window_get_type (void);
+GtkWidget * e_shell_window_new (void);
GtkUIManager * e_shell_window_get_ui_manager (EShellWindow *window);
GtkAction * e_shell_window_get_action (EShellWindow *window,
const gchar *action_name);
diff --git a/shell/e-shell.c b/shell/e-shell.c
index 81f89c4343..43c30363f7 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -20,11 +20,14 @@
#include "e-shell.h"
+#include <glib/gi18n.h>
+
+#include "e-shell-module.h"
+#include "e-shell-registry.h"
+
#define SHUTDOWN_TIMEOUT 500 /* milliseconds */
static GList *active_windows;
-static gboolean session_started;
-static gboolean shutting_down;
static gboolean
shell_window_delete_event_cb (EShellWindow *shell_window)
@@ -56,7 +59,7 @@ shell_shutdown_timeout (void)
static guint source_id = 0;
static guint message_timer = 1;
- list = e_shell_registry_get_modules ();
+ list = e_shell_registry_list_modules ();
/* Any module can defer shutdown if it's still busy. */
for (iter = list; proceed && iter != NULL; iter = iter->next) {
@@ -97,7 +100,7 @@ shell_shutdown_timeout (void)
return !proceed;
}
-void
+EShellWindow *
e_shell_create_window (void)
{
GtkWidget *shell_window;
@@ -115,4 +118,6 @@ e_shell_create_window (void)
shell_window_weak_notify_cb, NULL);
gtk_widget_show (shell_window);
+
+ return E_SHELL_WINDOW (shell_window);
}