aboutsummaryrefslogtreecommitdiffstats
path: root/src/ephy-session.c
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2005-02-02 07:42:48 +0800
committerChristian Persch <chpe@src.gnome.org>2005-02-02 07:42:48 +0800
commit3cc751a30e83efeed8fc9707d2069c545aa005c6 (patch)
tree3d1e4cee4a69ace5bc6a1d0d9ae28dfbebc7f698 /src/ephy-session.c
parentab9e3429d7c547aad67106a04847e16cda1279b4 (diff)
downloadgsoc2013-epiphany-3cc751a30e83efeed8fc9707d2069c545aa005c6.tar
gsoc2013-epiphany-3cc751a30e83efeed8fc9707d2069c545aa005c6.tar.gz
gsoc2013-epiphany-3cc751a30e83efeed8fc9707d2069c545aa005c6.tar.bz2
gsoc2013-epiphany-3cc751a30e83efeed8fc9707d2069c545aa005c6.tar.lz
gsoc2013-epiphany-3cc751a30e83efeed8fc9707d2069c545aa005c6.tar.xz
gsoc2013-epiphany-3cc751a30e83efeed8fc9707d2069c545aa005c6.tar.zst
gsoc2013-epiphany-3cc751a30e83efeed8fc9707d2069c545aa005c6.zip
Define variants with startup ID.
2005-02-02 Christian Persch <chpe@cvs.gnome.org> * idl/EphyAutomation.idl: Define variants with startup ID. * lib/ephy-gui.c: (ephy_gui_window_update_user_time): * lib/ephy-gui.h: * src/bookmarks/ephy-bookmarks.c: (redirect_cb): * src/ephy-automation.c: (impl_ephy_automation_loadUrlWithStartupId), (impl_ephy_automation_loadurl), (impl_ephy_automation_addBookmark), (impl_ephy_automation_importBookmarks), (impl_ephy_automation_loadSessionWithStartupId), (impl_ephy_automation_loadSession), (impl_ephy_automation_openBookmarksEditorWithStartupId), (impl_ephy_automation_openBookmarksEditor), (ephy_automation_class_init): * src/ephy-main.c: (get_startup_id), (main): * src/ephy-session.c: (offer_to_resume), (ephy_session_autoresume), (ephy_session_load): * src/ephy-session.h: * src/ephy-shell.c: (open_urls), (ephy_shell_startup), (ephy_shell_new_tab_full), (ephy_shell_new_tab): * src/ephy-shell.h: Implement startup ID forwarding to the already-running ephy instance. Part of bug #150085.
Diffstat (limited to 'src/ephy-session.c')
-rw-r--r--src/ephy-session.c35
1 files changed, 27 insertions, 8 deletions
diff --git a/src/ephy-session.c b/src/ephy-session.c
index 117081c83..49ca547d9 100644
--- a/src/ephy-session.c
+++ b/src/ephy-session.c
@@ -32,6 +32,7 @@
#include "ephy-file-helpers.h"
#include "eel-gconf-extensions.h"
#include "ephy-prefs.h"
+#include "ephy-gui.h"
#include "ephy-debug.h"
#include <glib/gi18n.h>
@@ -357,7 +358,8 @@ ephy_session_class_init (EphySessionClass *class)
}
static gboolean
-offer_to_resume (EphySession *session)
+offer_to_resume (EphySession *session,
+ guint32 user_time)
{
GtkWidget *dialog;
int response;
@@ -385,6 +387,9 @@ offer_to_resume (EphySession *session)
session->priv->resume_dialog = dialog;
+ ephy_gui_window_update_user_time (session->priv->resume_dialog,
+ user_time);
+
response = gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
@@ -397,6 +402,7 @@ offer_to_resume (EphySession *session)
/**
* ephy_session_autoresume:
* @session: a #EphySession
+ * @user_time: a timestamp, or 0
*
* Resume a crashed session when necessary (interactive)
*
@@ -405,28 +411,33 @@ offer_to_resume (EphySession *session)
* has been re-presented to the user.
**/
gboolean
-ephy_session_autoresume (EphySession *session)
+ephy_session_autoresume (EphySession *session,
+ guint32 user_time)
{
+ EphySessionPrivate *priv = session->priv;
char *saved_session;
gboolean retval = FALSE;
LOG ("ephy_session_autoresume");
- if (session->priv->windows != NULL || session->priv->tool_windows != NULL) return FALSE;
+ if (priv->windows != NULL || priv->tool_windows != NULL) return FALSE;
- if (session->priv->resume_dialog)
+ if (priv->resume_dialog)
{
- gtk_window_present (GTK_WINDOW (session->priv->resume_dialog));
+ ephy_gui_window_update_user_time (session->priv->resume_dialog,
+ user_time);
+ gtk_window_present (GTK_WINDOW (priv->resume_dialog));
return TRUE;
}
saved_session = get_session_filename (SESSION_CRASHED);
if (g_file_test (saved_session, G_FILE_TEST_EXISTS)
- && offer_to_resume (session))
+ && offer_to_resume (session, user_time))
{
session->priv->dont_save = TRUE;
- retval = ephy_session_load (session, saved_session);
+ retval = ephy_session_load (session, saved_session,
+ user_time);
session->priv->dont_save = FALSE;
ephy_session_save (session, SESSION_CRASHED);
}
@@ -738,6 +749,7 @@ restore_geometry (GtkWindow *window,
* ephy_session_load:
* @session: a #EphySession
* @filename: the path of the source file
+ * @user_time: a timestamp, or 0
*
* Load a session from disk, restoring the windows and their state
*
@@ -745,7 +757,8 @@ restore_geometry (GtkWindow *window,
**/
gboolean
ephy_session_load (EphySession *session,
- const char *filename)
+ const char *filename,
+ guint32 user_time)
{
xmlDocPtr doc;
xmlNodePtr child;
@@ -776,6 +789,9 @@ ephy_session_load (EphySession *session,
widget = GTK_WIDGET (ephy_window_new ());
restore_geometry (GTK_WINDOW (widget), child);
parse_embed (child->children, EPHY_WINDOW (widget));
+
+ ephy_gui_window_update_user_time (widget, user_time);
+
gtk_window_present (GTK_WINDOW (widget));
}
else if (xmlStrEqual (child->name, (const xmlChar *) "toolwindow"))
@@ -800,6 +816,9 @@ ephy_session_load (EphySession *session,
}
restore_geometry (GTK_WINDOW (widget), child);
+
+ ephy_gui_window_update_user_time (widget, user_time);
+
gtk_window_present (GTK_WINDOW (widget));
}