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=78fb8a08f2de918ee52789a67f56492bde42523b;hb=223cc03e0275c77c4482ed0495b3bd15993a3ab8;hp=70349dcb7f67c43d2aa71467a1ad3359999b54e9;hpb=2de1a33a123dea2aa16154e5beec5b3a57c939fc;p=evince.git diff --git a/libdocument/ev-document.c b/libdocument/ev-document.c index 70349dcb..78fb8a08 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)) @@ -419,11 +420,16 @@ ev_document_synctex_backward_search (EvDocument *document, /* We assume that a backward search returns either zero or one result_node */ node = synctex_next_result (scanner); if (node != NULL) { - result = g_new (EvSourceLink, 1); - result->filename = synctex_scanner_get_name (scanner, - synctex_node_tag (node)); - result->line = synctex_node_line (node); - result->col = synctex_node_column (node); + const gchar *filename; + + filename = synctex_scanner_get_name (scanner, synctex_node_tag (node)); + + if (filename) { + result = g_new (EvSourceLink, 1); + result->filename = filename; + result->line = synctex_node_line (node); + result->col = synctex_node_column (node); + } } } @@ -581,6 +587,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) {