diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2004-03-02 20:42:34 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2004-03-02 20:42:34 +0800 |
commit | 9dd3ec59aa5060a32662bff26fdb6961143b8c38 (patch) | |
tree | 001858dbd897ddf2b294d84800e40ae7447cce28 /src/ephy-session.c | |
parent | f240b3e2e9cb44326ef22c033944cc15251f321f (diff) | |
download | gsoc2013-epiphany-9dd3ec59aa5060a32662bff26fdb6961143b8c38.tar gsoc2013-epiphany-9dd3ec59aa5060a32662bff26fdb6961143b8c38.tar.gz gsoc2013-epiphany-9dd3ec59aa5060a32662bff26fdb6961143b8c38.tar.bz2 gsoc2013-epiphany-9dd3ec59aa5060a32662bff26fdb6961143b8c38.tar.lz gsoc2013-epiphany-9dd3ec59aa5060a32662bff26fdb6961143b8c38.tar.xz gsoc2013-epiphany-9dd3ec59aa5060a32662bff26fdb6961143b8c38.tar.zst gsoc2013-epiphany-9dd3ec59aa5060a32662bff26fdb6961143b8c38.zip |
Never show two resume dialogs, just re-present the old one.
2004-03-02 Marco Pesenti Gritti <marco@gnome.org>
* src/ephy-session.c: (ephy_session_init), (offer_to_resume),
(ephy_session_autoresume):
Never show two resume dialogs, just re-present the old one.
Diffstat (limited to 'src/ephy-session.c')
-rw-r--r-- | src/ephy-session.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/ephy-session.c b/src/ephy-session.c index 748f8d133..3bf4d46f8 100644 --- a/src/ephy-session.c +++ b/src/ephy-session.c @@ -54,6 +54,7 @@ struct EphySessionPrivate { GList *windows; + GtkWidget *resume_dialog; }; #define BOOKMARKS_EDITOR_ID "BookmarksEditor" @@ -238,6 +239,7 @@ ephy_session_init (EphySession *session) LOG ("EphySession initialising") session->priv->windows = NULL; + session->priv->resume_dialog = NULL; ensure_session_directory (); } @@ -301,6 +303,7 @@ offer_to_resume (EphySession *session) _("_Don't Recover"), GTK_RESPONSE_CANCEL, _("_Recover"), GTK_RESPONSE_OK, NULL); + session->priv->resume_dialog = dialog; gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); @@ -346,6 +349,8 @@ offer_to_resume (EphySession *session) gtk_widget_destroy (dialog); + session->priv->resume_dialog = NULL; + return (response == GTK_RESPONSE_OK); } @@ -355,7 +360,9 @@ offer_to_resume (EphySession *session) * * Resume a crashed session when necessary (interactive) * - * Return value: TRUE if at least a window has been opened + * Return value: TRUE if handled; windows have actually + * been opened or the dialog from a previous instance + * has been re-presented to the user. **/ gboolean ephy_session_autoresume (EphySession *session) @@ -363,9 +370,15 @@ ephy_session_autoresume (EphySession *session) char *saved_session; gboolean retval = FALSE; + LOG ("ephy_session_autoresume") + if (session->priv->windows != NULL) return FALSE; - LOG ("ephy_session_autoresume") + if (session->priv->resume_dialog) + { + gtk_window_present (GTK_WINDOW (session->priv->resume_dialog)); + return TRUE; + } saved_session = get_session_filename (SESSION_CRASHED); |