X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-page-cache.c;h=eb88ed9d607880b346382bc6378e848a1d40c5ae;hb=fec3fa03948fac32a28de1b3185da23095d43f38;hp=d7aa03db8f1d815120e9050c00670c3e2a844866;hpb=41229e9ef5135c93176acb6320f96abc7d624b0a;p=evince.git diff --git a/shell/ev-page-cache.c b/shell/ev-page-cache.c index d7aa03db..eb88ed9d 100644 --- a/shell/ev-page-cache.c +++ b/shell/ev-page-cache.c @@ -261,7 +261,7 @@ ev_page_cache_new (EvDocument *document) /* make some sanity check assertions */ if (! page_cache->uniform) g_assert (page_cache->size_cache != NULL); - if (page_cache->uniform) + if (page_cache->uniform && page_cache->n_pages > 0) g_assert (page_cache->uniform_width > 0 && page_cache->uniform_height > 0); ev_document_doc_mutex_unlock (); @@ -367,35 +367,32 @@ ev_page_cache_get_size (EvPageCache *page_cache, gint *width, gint *height) { + int w, h; + g_return_if_fail (EV_IS_PAGE_CACHE (page_cache)); g_return_if_fail (page >= 0 && page < page_cache->n_pages); if (page_cache->uniform) { - if (width) - *width = page_cache->uniform_width; - if (height) - *height = page_cache->uniform_height; + w = page_cache->uniform_width; + h = page_cache->uniform_height; } else { EvPageCacheInfo *info; info = &(page_cache->size_cache [page]); - if (width) - *width = info->width; - if (height) - *height = info->height; + w = info->width; + h = info->height; } + w = (int) (w * scale + 0.5); + h = (int) (h * scale + 0.5); + if (rotation == 0 || rotation == 180) { - if (width) - *width = (int) ((*width) * scale + 0.5); - if (height) - *height = (int) ((*height) * scale + 0.5); + if (width) *width = w; + if (height) *height = h; } else { - if (width) - *width = (int) ((*height) * scale + 0.5); - if (height) - *height = (int) ((*width) * scale + 0.5); + if (width) *width = h; + if (height) *height = w; } }