diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2007-02-16 17:27:12 (GMT) |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@src.gnome.org> | 2007-02-16 17:27:12 (GMT) |
commit | 1d6150237848b4c1fede94ce23baa4fd8870fd93 (patch) | |
tree | 7a607e0263e6b40591b31885b561f2192b7b6695 /shell/ev-window.c | |
parent | 76f055907e4eab82025f28cd0e813eb39713bf5b (diff) |
Use an EvRenderContext for rendering thumbnails instead of a suggested
2007-02-16 Carlos Garcia Campos <carlosgc@gnome.org>
* backend/dvi/dvi-document.c:
(dvi_document_thumbnails_get_dimensions),
(dvi_document_thumbnails_get_thumbnail):
* backend/impress/impress-document.c:
(impress_document_thumbnails_get_thumbnail),
(impress_document_thumbnails_get_dimensions):
* backend/ps/ps-document.c: (ps_document_thumbnails_get_thumbnail),
(ps_document_thumbnails_get_dimensions):
* backend/djvu/djvu-document.c:
(djvu_document_thumbnails_get_dimensions),
(djvu_document_thumbnails_get_thumbnail):
* backend/tiff/tiff-document.c:
(tiff_document_thumbnails_get_thumbnail),
(tiff_document_thumbnails_get_dimensions):
* backend/pdf/ev-poppler.cc: (make_thumbnail_for_page),
(pdf_document_thumbnails_get_thumbnail),
(pdf_document_thumbnails_get_dimensions):
* backend/comics/comics-document.c:
(comics_document_thumbnails_get_thumbnail),
(comics_document_thumbnails_get_dimensions):
* backend/pixbuf/pixbuf-document.c:
(pixbuf_document_thumbnails_get_thumbnail),
(pixbuf_document_thumbnails_get_dimensions):
* libdocument/ev-document-thumbnails.[ch]:
(ev_document_thumbnails_get_thumbnail),
(ev_document_thumbnails_get_dimensions):
* libdocument/ev-document-misc.[ch]:
(ev_document_misc_get_thumbnail_frame):
* shell/ev-jobs.[ch]: (ev_job_thumbnail_dispose),
(ev_job_thumbnail_new), (ev_job_thumbnail_run):
* shell/ev-sidebar-thumbnails.c: (get_scale_for_page), (add_range),
(ev_sidebar_thumbnails_set_loading_icon), (refresh),
(ev_sidebar_thumbnails_refresh):
* shell/ev-window.c: (ev_window_setup_document):
* thumbnailer/evince-thumbnailer.c: (evince_thumbnail_pngenc_get):
Use an EvRenderContext for rendering thumbnails instead of a suggested
width, so that different sized pages get sized proportionally.
svn path=/trunk/; revision=2332
Diffstat (limited to 'shell/ev-window.c')
-rw-r--r-- | shell/ev-window.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/shell/ev-window.c b/shell/ev-window.c index b9d6dfe..ab14e27 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -1053,8 +1053,10 @@ ev_window_setup_document (EvWindow *ev_window) document = ev_window->priv->document; ev_window->priv->page_cache = ev_page_cache_get (ev_window->priv->document); - g_signal_connect (ev_window->priv->page_cache, "page-changed", G_CALLBACK (page_changed_cb), ev_window); - g_signal_connect (ev_window->priv->page_cache, "history-changed", G_CALLBACK (history_changed_cb), ev_window); + g_signal_connect (ev_window->priv->page_cache, "page-changed", + G_CALLBACK (page_changed_cb), ev_window); + g_signal_connect (ev_window->priv->page_cache, "history-changed", + G_CALLBACK (history_changed_cb), ev_window); if (EV_IS_DOCUMENT_FIND (document)) { g_signal_connect_object (G_OBJECT (document), @@ -1064,12 +1066,24 @@ ev_window_setup_document (EvWindow *ev_window) } if (EV_IS_DOCUMENT_THUMBNAILS (document)) { + EvRenderContext *rc; + gint page_width, page_height; + gdouble scale; + ev_window_clear_thumbnail_job (ev_window); - ev_window->priv->thumbnail_job = ev_job_thumbnail_new (document, 0, 0, 100); + + ev_page_cache_get_size (ev_window->priv->page_cache, + 1, 0, 1.0, + &page_width, &page_height); + scale = (gdouble)128 / (gdouble)page_width; + + rc = ev_render_context_new (0, 0, scale); + ev_window->priv->thumbnail_job = ev_job_thumbnail_new (document, rc); g_signal_connect (ev_window->priv->thumbnail_job, "finished", G_CALLBACK (ev_window_set_icon_from_thumbnail), ev_window); ev_job_queue_add_job (EV_JOB (ev_window->priv->thumbnail_job), EV_JOB_PRIORITY_LOW); + g_object_unref (rc); } ev_sidebar_set_document (sidebar, document); |