diff options
Diffstat (limited to 'shell/ev-pixbuf-cache.c')
-rw-r--r-- | shell/ev-pixbuf-cache.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/shell/ev-pixbuf-cache.c b/shell/ev-pixbuf-cache.c index 0d1507d..00d71d4 100644 --- a/shell/ev-pixbuf-cache.c +++ b/shell/ev-pixbuf-cache.c @@ -255,6 +255,7 @@ check_job_size_and_unref (CacheJobInfo *job_info, ev_page_cache_get_size (page_cache, EV_JOB_RENDER (job_info->job)->rc->page, + EV_JOB_RENDER (job_info->job)->rc->orientation, scale, &width, &height); @@ -478,6 +479,7 @@ add_job_if_needed (EvPixbufCache *pixbuf_cache, CacheJobInfo *job_info, EvPageCache *page_cache, gint page, + EvOrientation orientation, gfloat scale, EvJobPriority priority) { @@ -489,9 +491,8 @@ add_job_if_needed (EvPixbufCache *pixbuf_cache, if (job_info->job) return; - ev_page_cache_get_size (page_cache, - page, scale, - &width, &height); + ev_page_cache_get_size (page_cache, page, orientation, + scale, &width, &height); if (job_info->pixbuf && gdk_pixbuf_get_width (job_info->pixbuf) == width && @@ -500,11 +501,11 @@ add_job_if_needed (EvPixbufCache *pixbuf_cache, /* make a new job now */ if (job_info->rc == NULL) { - job_info->rc = ev_render_context_new (EV_ORIENTATION_PORTRAIT, - page, scale); + job_info->rc = ev_render_context_new (orientation, page, scale); } else { ev_render_context_set_page (job_info->rc, page); ev_render_context_set_scale (job_info->rc, scale); + ev_render_context_set_orientation (job_info->rc, orientation); } /* Figure out what else we need for this job */ @@ -530,6 +531,7 @@ add_job_if_needed (EvPixbufCache *pixbuf_cache, static void ev_pixbuf_cache_add_jobs_if_needed (EvPixbufCache *pixbuf_cache, + EvOrientation orientation, gfloat scale) { EvPageCache *page_cache; @@ -544,7 +546,7 @@ ev_pixbuf_cache_add_jobs_if_needed (EvPixbufCache *pixbuf_cache, page = pixbuf_cache->start_page + i; add_job_if_needed (pixbuf_cache, job_info, - page_cache, page, scale, + page_cache, page, orientation, scale, EV_JOB_PRIORITY_HIGH); } @@ -553,7 +555,7 @@ ev_pixbuf_cache_add_jobs_if_needed (EvPixbufCache *pixbuf_cache, page = pixbuf_cache->start_page - pixbuf_cache->preload_cache_size + i; add_job_if_needed (pixbuf_cache, job_info, - page_cache, page, scale, + page_cache, page, orientation, scale, EV_JOB_PRIORITY_LOW); } @@ -562,7 +564,7 @@ ev_pixbuf_cache_add_jobs_if_needed (EvPixbufCache *pixbuf_cache, page = pixbuf_cache->end_page + 1 + i; add_job_if_needed (pixbuf_cache, job_info, - page_cache, page, scale, + page_cache, page, orientation, scale, EV_JOB_PRIORITY_LOW); } @@ -572,6 +574,7 @@ void ev_pixbuf_cache_set_page_range (EvPixbufCache *pixbuf_cache, gint start_page, gint end_page, + EvOrientation orientation, gfloat scale, GList *selection_list) { @@ -598,7 +601,7 @@ ev_pixbuf_cache_set_page_range (EvPixbufCache *pixbuf_cache, /* Finally, we add the new jobs for all the sizes that don't have a * pixbuf */ - ev_pixbuf_cache_add_jobs_if_needed (pixbuf_cache, scale); + ev_pixbuf_cache_add_jobs_if_needed (pixbuf_cache, orientation, scale); } GdkPixbuf * @@ -651,8 +654,8 @@ new_selection_pixbuf_needed (EvPixbufCache *pixbuf_cache, if (job_info->selection) { page_cache = ev_page_cache_get (pixbuf_cache->document); - ev_page_cache_get_size (page_cache, page, scale, - &width, &height); + ev_page_cache_get_size (page_cache, page, job_info->rc->orientation, + scale, &width, &height); if (width != gdk_pixbuf_get_width (job_info->selection) || height != gdk_pixbuf_get_height (job_info->selection)) |