diff options
author | Carlos Garcia Campos <cgarcia@igalia.com> | 2012-08-13 16:00:52 +0800 |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@gnome.org> | 2012-10-08 21:27:05 +0800 |
commit | be3e52e1c22a05b655c3b322045d1f5c6fd76c7f (patch) | |
tree | c5b09e964033368d3fada72097c1e8f85f530e0d /src/ephy-window.c | |
parent | 7512839e6add584e184805d3781f9976831a2188 (diff) | |
download | gsoc2013-epiphany-be3e52e1c22a05b655c3b322045d1f5c6fd76c7f.tar gsoc2013-epiphany-be3e52e1c22a05b655c3b322045d1f5c6fd76c7f.tar.gz gsoc2013-epiphany-be3e52e1c22a05b655c3b322045d1f5c6fd76c7f.tar.bz2 gsoc2013-epiphany-be3e52e1c22a05b655c3b322045d1f5c6fd76c7f.tar.lz gsoc2013-epiphany-be3e52e1c22a05b655c3b322045d1f5c6fd76c7f.tar.xz gsoc2013-epiphany-be3e52e1c22a05b655c3b322045d1f5c6fd76c7f.tar.zst gsoc2013-epiphany-be3e52e1c22a05b655c3b322045d1f5c6fd76c7f.zip |
Move windows handling code from EphySession to EphyShell
EphyShell is now a GtkApplication that already does window handling,
however we want to maintain only the of browser windows. Instead of
keeping the window lists in ephy-session, it's easier to override
window_added and window_removed virtual methods of GtkApplication and
update the browser window lists. Most of the cases where this API was
used, had to get the session object from the shell first, now we save
this step keeping the code simpler.
https://bugzilla.gnome.org/show_bug.cgi?id=641734
Diffstat (limited to 'src/ephy-window.c')
-rw-r--r-- | src/ephy-window.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/ephy-window.c b/src/ephy-window.c index dd85df737..c84d0c6a2 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -4183,10 +4183,8 @@ ephy_window_get_location_controller (EphyWindow *window) gboolean ephy_window_close (EphyWindow *window) { - EphySession *session; EphyEmbed *modified_embed = NULL; - GList *tabs, *l, *windows; - guint number_windows; + GList *tabs, *l; gboolean modified = FALSE; /* We ignore the delete_event if the disable_quit lockdown has been set @@ -4231,14 +4229,9 @@ ephy_window_close (EphyWindow *window) } /* If this is the last window, save its state in the session. */ - session = EPHY_SESSION (ephy_shell_get_session (ephy_shell)); - windows = ephy_session_get_windows (session); - number_windows = g_list_length (windows); - g_list_free (windows); - - if (number_windows == 1) + if (ephy_shell_get_n_windows (ephy_shell) == 1) { - ephy_session_close (session); + ephy_session_close (EPHY_SESSION (ephy_shell_get_session (ephy_shell))); } /* See bug #114689 */ |