]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-window.c
If the document is encrypted, the ev_document_factory_get_document() is
[evince.git] / shell / ev-window.c
index 618be31d25125a4e4954246b859a15917f6e2b4b..455c6a59a1fbe97f869fc132c4a5bf109a748d11 100644 (file)
@@ -1248,6 +1248,18 @@ ev_window_set_document (EvWindow *ev_window, EvDocument *document)
        g_signal_connect (ev_window->priv->page_cache, "history-changed",
                          G_CALLBACK (history_changed_cb), ev_window);
 
+       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_page_cache_get_n_pages (ev_window->priv->page_cache) - 1);
+               ev_page_cache_set_current_page (ev_window->priv->page_cache, page);
+               g_object_unref (ev_window->priv->dest);
+               ev_window->priv->dest = NULL;
+       }
+
        if (ev_page_cache_get_n_pages (ev_window->priv->page_cache) > 0) {
                ev_view_set_document (view, document);
        } else {
@@ -1439,8 +1451,7 @@ ev_window_load_job_cb (EvJob *job,
                return;
        }
 
-       if (job->error->domain == EV_DOCUMENT_ERROR &&
-           job->error->code == EV_DOCUMENT_ERROR_ENCRYPTED) {
+       if (g_error_matches (job->error, EV_DOCUMENT_ERROR, EV_DOCUMENT_ERROR_ENCRYPTED)) {
                gchar *password;
                
                setup_view_from_metadata (ev_window);
@@ -1487,7 +1498,6 @@ ev_window_reload_job_cb (EvJob    *job,
                         EvWindow *ev_window)
 {
        GtkWidget *widget;
-       gint       page;
 
        if (ev_job_is_failed (job)) {
                ev_window_clear_reload_job (ev_window);
@@ -1499,14 +1509,6 @@ ev_window_reload_job_cb (EvJob    *job,
        }
        
        ev_window_set_document (ev_window, job->document);
-
-       /* Restart the current page */
-       page = CLAMP (ev_link_dest_get_page (ev_window->priv->dest),
-                     0,
-                     ev_page_cache_get_n_pages (ev_window->priv->page_cache) - 1);
-       ev_page_cache_set_current_page (ev_window->priv->page_cache, page);
-       g_object_unref (ev_window->priv->dest);
-       ev_window->priv->dest = NULL;
        
        /* Restart the search after reloading */
        widget = gtk_window_get_focus (GTK_WINDOW (ev_window));