]> www.fi.muni.cz Git - evince.git/blobdiff - backend/ev-page-cache.c
actually remove the job.
[evince.git] / backend / ev-page-cache.c
index 491e0742a7b706f2b0c77161afa829928b1c23a4..a6d78228b5d82d455cad9de47a1e7cd2470ad822 100644 (file)
@@ -89,22 +89,30 @@ ev_page_cache_finalize (GObject *object)
 EvPageCache *
 _ev_page_cache_new (EvDocument *document)
 {
+       EvDocumentInfo *doc_info;
        EvPageCache *page_cache;
        EvPageCacheInfo *info;
        gint i;
 
        page_cache = (EvPageCache *) g_object_new (EV_TYPE_PAGE_CACHE, NULL);
 
-       g_mutex_lock (EV_DOC_MUTEX);
+       ev_document_doc_mutex_lock ();
 
        /* We read page information out of the document */
 
        /* Assume all pages are the same size until proven otherwise */
        page_cache->uniform = TRUE;
        page_cache->n_pages = ev_document_get_n_pages (document);
-       page_cache->title = ev_document_get_title (document);
        page_cache->page_labels = g_new0 (char *, page_cache->n_pages);
 
+       doc_info = ev_document_get_info (document);
+       if (doc_info->fields_mask & EV_DOCUMENT_INFO_TITLE) {
+               page_cache->title = g_strdup (doc_info->title);
+       } else {
+               page_cache->title = NULL;
+       }
+       g_free (doc_info);
+
        for (i = 0; i < page_cache->n_pages; i++) {
                double page_width = 0;
                double page_height = 0;
@@ -144,7 +152,7 @@ _ev_page_cache_new (EvDocument *document)
        if (! page_cache->uniform)
                g_assert (page_cache->size_cache != NULL);
 
-       g_mutex_unlock (EV_DOC_MUTEX);
+       ev_document_doc_mutex_unlock ();
 
        if (page_cache->n_pages > 0)
                ev_page_cache_set_current_page (page_cache, 0);