aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ephy-main.c5
-rw-r--r--src/ephy-shell.c9
-rw-r--r--src/ephy-shell.h2
3 files changed, 10 insertions, 6 deletions
diff --git a/src/ephy-main.c b/src/ephy-main.c
index 86d1f2160..98bde4f3e 100644
--- a/src/ephy-main.c
+++ b/src/ephy-main.c
@@ -417,9 +417,10 @@ main (int argc,
g_setenv ("XLIB_SKIP_ARGB_VISUALS", "1", FALSE);
/* Now create the shell */
- _ephy_shell_create_instance ();
+ application = ephy_application_new ();
+ _ephy_shell_create_instance (application);
+ g_object_unref (application);
- application = ephy_shell_get_application (ephy_shell_get_default());
if (private_instance) {
GApplicationFlags flags;
diff --git a/src/ephy-shell.c b/src/ephy-shell.c
index 1de265b6a..5ebd1f21c 100644
--- a/src/ephy-shell.c
+++ b/src/ephy-shell.c
@@ -202,8 +202,6 @@ ephy_shell_init (EphyShell *shell)
ephy_shell = shell;
g_object_add_weak_pointer (G_OBJECT(ephy_shell),
(gpointer *)ptr);
-
- shell->priv->application = ephy_application_new ();
}
static void
@@ -815,7 +813,7 @@ ephy_shell_get_application (EphyShell *shell)
}
void
-_ephy_shell_create_instance (void)
+_ephy_shell_create_instance (EphyApplication *application)
{
g_assert (ephy_shell == NULL);
@@ -823,4 +821,9 @@ _ephy_shell_create_instance (void)
/* FIXME weak ref */
g_assert (ephy_shell != NULL);
+
+ if (application)
+ ephy_shell->priv->application = g_object_ref (application);
+ else
+ ephy_shell->priv->application = ephy_application_new ();
}
diff --git a/src/ephy-shell.h b/src/ephy-shell.h
index 18d6aab74..100356443 100644
--- a/src/ephy-shell.h
+++ b/src/ephy-shell.h
@@ -130,7 +130,7 @@ GObject *ephy_shell_get_prefs_dialog (EphyShell *shell);
EphyApplication *ephy_shell_get_application (EphyShell *shell);
/* private API */
-void _ephy_shell_create_instance (void);
+void _ephy_shell_create_instance (EphyApplication *application);
G_END_DECLS