X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libview%2Fev-pixbuf-cache.c;h=42dd1def5349ccfb22056b5e35140583232212de;hb=2297bff1e7d745f0f837d44feeda03244368d7f1;hp=d4ab9222b766eeb6b40be61fb3ee1985718e4627;hpb=3c5ff5eed01d4a0a3fbe9731fac7938b64f52c36;p=evince.git diff --git a/libview/ev-pixbuf-cache.c b/libview/ev-pixbuf-cache.c index d4ab9222..42dd1def 100644 --- a/libview/ev-pixbuf-cache.c +++ b/libview/ev-pixbuf-cache.c @@ -464,7 +464,9 @@ ev_pixbuf_cache_get_preload_size (EvPixbufCache *pixbuf_cache, static void ev_pixbuf_cache_update_range (EvPixbufCache *pixbuf_cache, gint start_page, - gint end_page) + gint end_page, + guint rotation, + gdouble scale) { CacheJobInfo *new_job_list; CacheJobInfo *new_prev_job = NULL; @@ -472,8 +474,6 @@ ev_pixbuf_cache_update_range (EvPixbufCache *pixbuf_cache, gint new_preload_cache_size; guint new_job_list_len; int i, page; - gdouble scale = ev_document_model_get_scale (pixbuf_cache->model); - gint rotation = ev_document_model_get_rotation (pixbuf_cache->model); new_preload_cache_size = ev_pixbuf_cache_get_preload_size (pixbuf_cache, start_page, @@ -739,10 +739,11 @@ void ev_pixbuf_cache_set_page_range (EvPixbufCache *pixbuf_cache, gint start_page, gint end_page, - gint rotation, - gfloat scale, GList *selection_list) { + gdouble scale = ev_document_model_get_scale (pixbuf_cache->model); + gint rotation = ev_document_model_get_rotation (pixbuf_cache->model); + g_return_if_fail (EV_IS_PIXBUF_CACHE (pixbuf_cache)); g_return_if_fail (start_page >= 0 && start_page < ev_document_get_n_pages (pixbuf_cache->document)); @@ -751,7 +752,7 @@ ev_pixbuf_cache_set_page_range (EvPixbufCache *pixbuf_cache, /* First, resize the page_range as needed. We cull old pages * mercilessly. */ - ev_pixbuf_cache_update_range (pixbuf_cache, start_page, end_page); + ev_pixbuf_cache_update_range (pixbuf_cache, start_page, end_page, rotation, scale); /* Then, we update the current jobs to see if any of them are the wrong * size, we remove them if we need to. */ @@ -868,6 +869,9 @@ ev_pixbuf_cache_clear (EvPixbufCache *pixbuf_cache) { int i; + if (!pixbuf_cache->job_list) + return; + for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { dispose_cache_job_info (pixbuf_cache->prev_job + i, pixbuf_cache); dispose_cache_job_info (pixbuf_cache->next_job + i, pixbuf_cache); @@ -884,6 +888,9 @@ ev_pixbuf_cache_style_changed (EvPixbufCache *pixbuf_cache) { gint i; + if (!pixbuf_cache->job_list) + return; + /* FIXME: doesn't update running jobs. */ for (i = 0; i < pixbuf_cache->preload_cache_size; i++) { CacheJobInfo *job_info;