Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-pixbuf-cache.c
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2005-07-29 14:17:57 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-07-29 14:17:57 (GMT)
commit96ab01a78dafd62f121b11010a9857cbd9a7922c (patch)
tree7434b3a318aa57d7face694144efed048ba17e68 /shell/ev-pixbuf-cache.c
parent596c9107204be24ac45fa02cc0cb59c238e09111 (diff)
Really make use of the orientation bit of the render context. Use the
2005-07-29 Marco Pesenti Gritti <mpg@redhat.com> * backend/ev-document-thumbnails.c: (ev_document_thumbnails_get_thumbnail): * backend/ev-document-thumbnails.h: * backend/ev-document.c: * backend/ev-document.h: * backend/ev-ps-exporter.c: (ev_ps_exporter_do_page): * backend/ev-ps-exporter.h: * pdf/ev-poppler.cc: * ps/ps-document.c: (ps_document_document_iface_init), (ps_document_ps_export_do_page): * shell/ev-jobs.c: (ev_job_thumbnail_new), (ev_job_thumbnail_run): * shell/ev-jobs.h: * shell/ev-page-cache.c: (ev_page_cache_get_size), (ev_page_cache_get): * shell/ev-page-cache.h: * shell/ev-pixbuf-cache.c: (check_job_size_and_unref), (add_job_if_needed), (ev_pixbuf_cache_add_jobs_if_needed), (ev_pixbuf_cache_set_page_range), (new_selection_pixbuf_needed): * shell/ev-pixbuf-cache.h: * shell/ev-print-job.c: (idle_print_handler): * shell/ev-sidebar-thumbnails.c: (add_range): * shell/ev-view.c: (view_update_range_and_current_page), (get_page_extents), (ev_view_size_request_dual_page), (ev_view_size_request_single_page), (draw_one_page), (clear_caches), (ev_view_set_orientation), (ev_view_rotate_right), (ev_view_rotate_left), (ev_view_zoom_for_size_presentation), (ev_view_zoom_for_size_dual_page), (ev_view_zoom_for_size_single_page), (compute_new_selection_text), (ev_view_select_all): * thumbnailer/evince-thumbnailer.c: (evince_thumbnail_pngenc_get): * tiff/tiff-document.c: (tiff_document_get_page_size), (tiff_document_get_orientation), (rotate_pixbuf), (tiff_document_render_pixbuf), (tiff_document_document_iface_init), (tiff_document_thumbnails_get_thumbnail), (tiff_document_ps_export_do_page), (tiff_document_init): Really make use of the orientation bit of the render context. Use the render context in a few more places in the backend API. This regress orientation, but now it's done right. Will try to fix it up asap...
Diffstat (limited to 'shell/ev-pixbuf-cache.c')
-rw-r--r--shell/ev-pixbuf-cache.c25
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))