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;
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);