X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=libdocument%2Fev-document.c;h=d7ee2c1d2d472501cc32448ecc7c28837c603353;hb=212d9a536bc60e711b779feb5e8aa33db654997d;hp=1747bf1b216255677bcbab98dc20401cb8555bf0;hpb=a3a90743203a26d3fc71f0d9ba58aeb645279d04;p=evince.git diff --git a/libdocument/ev-document.c b/libdocument/ev-document.c index 1747bf1b..d7ee2c1d 100644 --- a/libdocument/ev-document.c +++ b/libdocument/ev-document.c @@ -25,6 +25,7 @@ #include #include "ev-document.h" +#include "ev-document-misc.h" #include "synctex_parser.h" #define EV_DOCUMENT_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EV_TYPE_DOCUMENT, EvDocumentPrivate)) @@ -433,9 +434,7 @@ ev_document_synctex_backward_search (EvDocument *document, /** * ev_document_synctex_forward_search: * @document: - * @filename: the source filename - * @line: line number in the source file - * @col: column number in the source file + * @source_link: * * Peforms a Synctex forward search to obtain the area in the document * corresponding to the position @line and @column number in the source Tex file @@ -444,10 +443,8 @@ ev_document_synctex_backward_search (EvDocument *document, * the given line in the source file. It must be free with g_free when done */ EvMapping * -ev_document_synctex_forward_search (EvDocument *document, - const gchar *filename, - gint line, - gint col) +ev_document_synctex_forward_search (EvDocument *document, + EvSourceLink *link) { EvMapping *result = NULL; synctex_scanner_t scanner; @@ -458,7 +455,7 @@ ev_document_synctex_forward_search (EvDocument *document, if (!scanner) return NULL; - if (synctex_display_query (scanner, filename, line, col) > 0) { + if (synctex_display_query (scanner, link->filename, link->line, link->col) > 0) { synctex_node_t node; gint page; @@ -585,6 +582,32 @@ ev_document_render (EvDocument *document, return klass->render (document, rc); } +static GdkPixbuf * +_ev_document_get_thumbnail (EvDocument *document, + EvRenderContext *rc) +{ + cairo_surface_t *surface; + GdkPixbuf *pixbuf; + + surface = ev_document_render (document, rc); + pixbuf = ev_document_misc_pixbuf_from_surface (surface); + cairo_surface_destroy (surface); + + return pixbuf; +} + +GdkPixbuf * +ev_document_get_thumbnail (EvDocument *document, + EvRenderContext *rc) +{ + EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document); + + if (klass->get_thumbnail) + return klass->get_thumbnail (document, rc); + + return _ev_document_get_thumbnail (document, rc); +} + const gchar * ev_document_get_uri (EvDocument *document) {