]> www.fi.muni.cz Git - evince.git/blobdiff - backend/ev-page-cache.c
Updated Canadian English translation.
[evince.git] / backend / ev-page-cache.c
index 5a713dab8bdb092a150f8b2d5005680cb007fc54..935347e19430c9ee4e899ea68c94041a73b37a60 100644 (file)
@@ -51,7 +51,7 @@ G_DEFINE_TYPE (EvPageCache, ev_page_cache, G_TYPE_OBJECT)
 static void
 ev_page_cache_init (EvPageCache *page_cache)
 {
-       page_cache->current_page = 0;
+       page_cache->current_page = -1;
 }
 
 static void
@@ -89,6 +89,7 @@ ev_page_cache_finalize (GObject *object)
 EvPageCache *
 _ev_page_cache_new (EvDocument *document)
 {
+       EvDocumentInfo *doc_info;
        EvPageCache *page_cache;
        EvPageCacheInfo *info;
        gint i;
@@ -102,9 +103,16 @@ _ev_page_cache_new (EvDocument *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;
@@ -141,14 +149,14 @@ _ev_page_cache_new (EvDocument *document)
        }
 
        /* make some sanity check assertions */
-       g_assert (page_cache->n_pages > 0);
        if (! page_cache->uniform)
                g_assert (page_cache->size_cache != NULL);
-       if (page_cache->uniform)
-               g_assert (page_cache->uniform_width > 0 && page_cache->uniform_height > 0);
 
        g_mutex_unlock (EV_DOC_MUTEX);
 
+       if (page_cache->n_pages > 0)
+               ev_page_cache_set_current_page (page_cache, 0);
+
        return page_cache;
 }