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.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/shell/e-shell.c b/shell/e-shell.c
index c875dcb5cf..d6884b0a69 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -62,6 +62,7 @@ enum {
LAST_SIGNAL
};
+EShell *default_shell = NULL;
static gpointer parent_class;
static guint signals[LAST_SIGNAL];
@@ -362,8 +363,9 @@ shell_class_init (EShellClass *class)
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST | G_SIGNAL_DETAILED | G_SIGNAL_ACTION,
0, NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE, 1,
+ G_TYPE_POINTER);
signals[HANDLE_URI] = g_signal_new (
"handle-uri",
@@ -451,9 +453,12 @@ e_shell_get_type (void)
}
EShell *
-e_shell_new (gboolean online_mode)
+e_shell_get_default (void)
{
- return g_object_new (E_TYPE_SHELL, "online-mode", online_mode, NULL);
+ /* Emit a warning if we call this too early. */
+ g_return_val_if_fail (default_shell != NULL, NULL);
+
+ return default_shell;
}
GList *
@@ -626,7 +631,8 @@ e_shell_get_preferences_window (void)
void
e_shell_event (EShell *shell,
- const gchar *event_name)
+ const gchar *event_name,
+ gpointer event_data)
{
GQuark detail;
@@ -634,7 +640,7 @@ e_shell_event (EShell *shell,
g_return_if_fail (event_name != NULL);
detail = g_quark_from_string (event_name);
- g_signal_emit (shell, signals[EVENT], detail);
+ g_signal_emit (shell, signals[EVENT], detail, event_data);
}
gboolean