X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=backend%2Fev-page-cache.c;h=935347e19430c9ee4e899ea68c94041a73b37a60;hb=429224b821ebc694edd283e8a0d23c6b86d8d078;hp=5a713dab8bdb092a150f8b2d5005680cb007fc54;hpb=f33d56a3b152b000ebc6b95e011409c4eeab55a3;p=evince.git diff --git a/backend/ev-page-cache.c b/backend/ev-page-cache.c index 5a713dab..935347e1 100644 --- a/backend/ev-page-cache.c +++ b/backend/ev-page-cache.c @@ -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; }