diff options
author | Carlos Garcia Campos <cgarcia@igalia.com> | 2012-09-27 16:15:15 +0800 |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@gnome.org> | 2012-09-27 16:15:15 +0800 |
commit | 3ad970f76f2ede63152cdfd3b5c882aa80aad3cc (patch) | |
tree | b112571bad5c8b4d475a2b31fb7a22f02639d912 /src/ephy-session.c | |
parent | ed5d02e80aab0297b04b31939a83bc13e75baf45 (diff) | |
download | gsoc2013-epiphany-3ad970f76f2ede63152cdfd3b5c882aa80aad3cc.tar gsoc2013-epiphany-3ad970f76f2ede63152cdfd3b5c882aa80aad3cc.tar.gz gsoc2013-epiphany-3ad970f76f2ede63152cdfd3b5c882aa80aad3cc.tar.bz2 gsoc2013-epiphany-3ad970f76f2ede63152cdfd3b5c882aa80aad3cc.tar.lz gsoc2013-epiphany-3ad970f76f2ede63152cdfd3b5c882aa80aad3cc.tar.xz gsoc2013-epiphany-3ad970f76f2ede63152cdfd3b5c882aa80aad3cc.tar.zst gsoc2013-epiphany-3ad970f76f2ede63152cdfd3b5c882aa80aad3cc.zip |
Make sure windows are properly closed when quitting from the shell menu
https://bugzilla.gnome.org/show_bug.cgi?id=679844
Diffstat (limited to 'src/ephy-session.c')
-rw-r--r-- | src/ephy-session.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/ephy-session.c b/src/ephy-session.c index ac4c328a3..9f44d7e0f 100644 --- a/src/ephy-session.c +++ b/src/ephy-session.c @@ -1236,6 +1236,43 @@ ephy_session_get_active_window (EphySession *session) } /** + * ephy_session_close_all_windows: + * @session: a #EphySession + * + * Try to close all browser windows. A window might refuse to + * close if there are ongoing download operations or unsubmitted + * modifed forms. + * + * Returns: %TRUE if all windows were closed, or %FALSE otherwise + **/ +gboolean +ephy_session_close_all_windows (EphySession *session) +{ + GList *l; + gboolean retval = TRUE; + + g_return_val_if_fail (EPHY_IS_SESSION (session), FALSE); + + ephy_session_close (session); + + for (l = session->priv->windows; l != NULL; l = l->next) + { + EphyWindow *window = EPHY_WINDOW (l->data); + + if (ephy_window_close (window)) + { + gtk_widget_destroy (GTK_WIDGET (window)); + } + else + { + retval = FALSE; + } + } + + return retval; +} + +/** * ephy_session_queue_command: * @session: a #EphySession **/ |