From 3ad970f76f2ede63152cdfd3b5c882aa80aad3cc Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Thu, 27 Sep 2012 10:15:15 +0200 Subject: Make sure windows are properly closed when quitting from the shell menu https://bugzilla.gnome.org/show_bug.cgi?id=679844 --- src/ephy-session.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src/ephy-session.c') 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 @@ -1235,6 +1235,43 @@ ephy_session_get_active_window (EphySession *session) return window; } +/** + * 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 -- cgit v1.2.3