diff options
author | Carlos 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) |
commit | deb7ba40b7706ce7018c4effa42cfc886c251cce (patch) | |
tree | d53788dd2a1f358aeb14673f8fa557371bd6663c /shell | |
parent | 34dc864999174a8416c4f2b772de897c581705e4 (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.c | 9 |
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); |