diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ephy-main.c | 5 | ||||
-rw-r--r-- | src/ephy-shell.c | 9 | ||||
-rw-r--r-- | src/ephy-shell.h | 2 |
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 |