X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=backend%2Fps%2Fev-spectre.c;h=6fe58692e1630f03d9e7047aca10c11fe6588c9b;hb=0f49d36875245876db71c547038d7dcf8bed4236;hp=82e3ca61ba6969d7b9d4e3da39f9f8f8b86b121d;hpb=31e16bd8f386dc292e60489d4a17227804bdc2e6;p=evince.git diff --git a/backend/ps/ev-spectre.c b/backend/ps/ev-spectre.c index 82e3ca61..6fe58692 100644 --- a/backend/ps/ev-spectre.c +++ b/backend/ps/ev-spectre.c @@ -19,6 +19,7 @@ #include +#include #include #include #include @@ -46,10 +47,10 @@ static void ps_document_document_thumbnails_iface_init (EvDocumentThumbnailsIfac EV_BACKEND_REGISTER_WITH_CODE (PSDocument, ps_document, { - G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, - ps_document_document_thumbnails_iface_init); - G_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER, - ps_document_file_exporter_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, + ps_document_document_thumbnails_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER, + ps_document_file_exporter_iface_init); }); /* PSDocument */ @@ -288,7 +289,9 @@ ps_document_render (EvDocument *document, rotation = (rc->rotation + get_page_rotation (ps_page)) % 360; src = spectre_render_context_new (); - spectre_render_context_set_page_size (src, width, height); + spectre_render_context_set_scale (src, + (gdouble)width / width_points, + (gdouble)height / height_points); spectre_render_context_set_rotation (src, rotation); spectre_page_render (ps_page, src, &data, &stride); spectre_render_context_free (src); @@ -348,6 +351,11 @@ ps_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document_thumbnails, GdkPixbuf *pixbuf = NULL; surface = ps_document_render (EV_DOCUMENT (ps), rc); + if (!surface) { + g_warning ("Error rendering thumbnail"); + return NULL; + } + pixbuf = ev_document_misc_pixbuf_from_surface (surface); cairo_surface_destroy (surface);