Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2007-09-03 15:45:56 (GMT)
committer Carlos Garcia Campos <carlosgc@src.gnome.org>2007-09-03 15:45:56 (GMT)
commitdeb7ba40b7706ce7018c4effa42cfc886c251cce (patch)
treed53788dd2a1f358aeb14673f8fa557371bd6663c /shell
parent34dc864999174a8416c4f2b772de897c581705e4 (diff)
Do not jump to the first page when reloading a document from the last
2007-09-03 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-window.c: (setup_document_from_metadata), (ev_window_load_job_cb), (ev_window_cmd_view_reload): Do not jump to the first page when reloading a document from the last page. svn path=/trunk/; revision=2658
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-window.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/shell/ev-window.c b/shell/ev-window.c
index c973f42..25ee9c9 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -176,6 +176,7 @@ struct _EvWindowPrivate {
char *local_uri;
EvLinkDest *dest;
gboolean unlink_temp_file;
+ gboolean in_reload;
EvDocument *document;
EvHistory *history;
@@ -796,7 +797,7 @@ setup_document_from_metadata (EvWindow *window)
if (uri && ev_metadata_manager_get (uri, "page", &page, TRUE)) {
n_pages = ev_page_cache_get_n_pages (window->priv->page_cache);
new_page = CLAMP (g_value_get_int (&page), 0, n_pages - 1);
- if (new_page == n_pages - 1)
+ if (!window->priv->in_reload && new_page == n_pages - 1)
new_page = 0;
ev_page_cache_set_current_page (window->priv->page_cache,
new_page);
@@ -1324,7 +1325,8 @@ ev_window_load_job_cb (EvJobLoad *job,
break;
}
- ev_window_clear_load_job (ev_window);
+ ev_window_clear_load_job (ev_window);
+ ev_window->priv->in_reload = FALSE;
return;
}
@@ -1348,6 +1350,7 @@ ev_window_load_job_cb (EvJobLoad *job,
_("Unable to open document"),
job->error);
ev_window_clear_load_job (ev_window);
+ ev_window->priv->in_reload = FALSE;
}
return;
@@ -3308,6 +3311,8 @@ ev_window_cmd_view_reload (GtkAction *action, EvWindow *ev_window)
{
gchar *uri;
+ ev_window->priv->in_reload = TRUE;
+
uri = g_strdup (ev_window->priv->uri);
ev_window_open_uri (ev_window, uri, NULL, 0, FALSE, NULL);
g_free (uri);