diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2009-11-23 13:51:37 (GMT) |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@gnome.org> | 2009-11-23 13:51:37 (GMT) |
commit | 343839e68baac629b0f9c66d73ee4a6fc7b29e12 (patch) | |
tree | b02893587089613256f6fedc4d446bb8c97a0501 /shell/ev-window.c | |
parent | bfac656616900acf9ab70e89afaa7f6f5d0307ef (diff) |
[shell] Do not create a destination for reloading current page
Diffstat (limited to 'shell/ev-window.c')
-rw-r--r-- | shell/ev-window.c | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/shell/ev-window.c b/shell/ev-window.c index fcd59de..1b82aa4 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -1249,18 +1249,6 @@ ev_window_set_document (EvWindow *ev_window, EvDocument *document) ev_window_set_message_area (ev_window, NULL); - if (ev_window->priv->in_reload && ev_window->priv->dest) { - gint page; - - /* Restart the current page */ - page = CLAMP (ev_link_dest_get_page (ev_window->priv->dest), - 0, - ev_document_get_n_pages (document) - 1); - ev_document_model_set_page (ev_window->priv->model, page); - g_object_unref (ev_window->priv->dest); - ev_window->priv->dest = NULL; - } - if (ev_document_get_n_pages (document) <= 0) { ev_window_warning_message (ev_window, "%s", _("The document contains no pages")); @@ -1470,23 +1458,28 @@ ev_window_reload_job_cb (EvJob *job, EvWindow *ev_window) { GtkWidget *widget; - EvLinkDest *dest = NULL; if (ev_job_is_failed (job)) { ev_window_clear_reload_job (ev_window); ev_window->priv->in_reload = FALSE; - g_object_unref (ev_window->priv->dest); - ev_window->priv->dest = NULL; - + if (ev_window->priv->dest) { + g_object_unref (ev_window->priv->dest); + ev_window->priv->dest = NULL; + } + return; } - if (ev_window->priv->dest) { - dest = g_object_ref (ev_window->priv->dest); - } ev_document_model_set_document (ev_window->priv->model, job->document); - ev_window_handle_link (ev_window, dest); + if (ev_window->priv->dest) { + ev_window_handle_link (ev_window, ev_window->priv->dest); + /* Already unrefed by ev_link_action + * FIXME: link action should inc dest ref counting + * or not unref it at all + */ + ev_window->priv->dest = NULL; + } /* Restart the search after reloading */ widget = gtk_window_get_focus (GTK_WINDOW (ev_window)); @@ -2098,8 +2091,7 @@ ev_window_reload_document (EvWindow *ev_window, if (ev_window->priv->dest) g_object_unref (ev_window->priv->dest); - /* FIXME: save the scroll position too (xyz dest) */ - ev_window->priv->dest = dest ? g_object_ref (dest) : ev_link_dest_new_page (page); + ev_window->priv->dest = dest ? g_object_ref (dest) : NULL; if (ev_window->priv->local_uri) { ev_window_reload_remote (ev_window); |