aboutsummaryrefslogtreecommitdiffstats
path: root/src/ephy-session.c
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2004-03-02 20:42:34 +0800
committerMarco Pesenti Gritti <marco@src.gnome.org>2004-03-02 20:42:34 +0800
commit9dd3ec59aa5060a32662bff26fdb6961143b8c38 (patch)
tree001858dbd897ddf2b294d84800e40ae7447cce28 /src/ephy-session.c
parentf240b3e2e9cb44326ef22c033944cc15251f321f (diff)
downloadgsoc2013-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.c17
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);