]> www.fi.muni.cz Git - evince.git/blobdiff - backend/pdf/ev-poppler.cc
Updated Occitan translation
[evince.git] / backend / pdf / ev-poppler.cc
index 38a96a533a4d75fd4b397513fce56e06a48bdbad..38a01fd49679f8fe81d2383a82347fb38133dbd7 100644 (file)
@@ -126,6 +126,7 @@ static EvLink     *ev_link_from_action      (PdfDocument       *pdf_document,
 static void        pdf_document_search_free (PdfDocumentSearch *search);
 static void        pdf_print_context_free   (PdfPrintContext   *ctx);
 
+#ifdef HAVE_FORMS
 G_DEFINE_TYPE_WITH_CODE (PdfDocument, pdf_document, G_TYPE_OBJECT,
                          {
                                 G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT,
@@ -138,10 +139,8 @@ G_DEFINE_TYPE_WITH_CODE (PdfDocument, pdf_document, G_TYPE_OBJECT,
                                                        pdf_document_document_links_iface_init);
                                 G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_IMAGES,
                                                        pdf_document_document_images_iface_init);
-#ifdef HAVE_FORMS
                                 G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FORMS,
                                                        pdf_document_document_forms_iface_init);
-#endif /* HAVE_FORMS */
                                 G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FONTS,
                                                        pdf_document_document_fonts_iface_init);
                                 G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FIND,
@@ -153,7 +152,31 @@ G_DEFINE_TYPE_WITH_CODE (PdfDocument, pdf_document, G_TYPE_OBJECT,
                                 G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_TRANSITION,
                                                        pdf_document_page_transition_iface_init);
                         });
-
+#else /* !HAVE_FORMS */
+G_DEFINE_TYPE_WITH_CODE (PdfDocument, pdf_document, G_TYPE_OBJECT,
+                         {
+                                G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT,
+                                                       pdf_document_document_iface_init);
+                                G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_SECURITY,
+                                                       pdf_document_security_iface_init);
+                                G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS,
+                                                       pdf_document_document_thumbnails_iface_init);
+                                G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_LINKS,
+                                                       pdf_document_document_links_iface_init);
+                                G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_IMAGES,
+                                                       pdf_document_document_images_iface_init);
+                                G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FONTS,
+                                                       pdf_document_document_fonts_iface_init);
+                                G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FIND,
+                                                       pdf_document_find_iface_init);
+                                G_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER,
+                                                       pdf_document_file_exporter_iface_init);
+                                G_IMPLEMENT_INTERFACE (EV_TYPE_SELECTION,
+                                                       pdf_selection_iface_init);
+                                G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_TRANSITION,
+                                                       pdf_document_page_transition_iface_init);
+                        });
+#endif /* HAVE_FORMS */
 
 static void
 set_rc_data (PdfDocument     *pdf_document,
@@ -1270,7 +1293,15 @@ pdf_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document_thumbnails
        g_return_val_if_fail (poppler_page != NULL, NULL);
 
        pixbuf = poppler_page_get_thumbnail (poppler_page);
-       if (!pixbuf) {
+       if (pixbuf) {
+               /* Rotate provided thumbnail if needed */
+               GdkPixbuf *rotated_pixbuf;
+
+               rotated_pixbuf = gdk_pixbuf_rotate_simple (pixbuf,
+                                                          (GdkPixbufRotation) (360 - rc->rotation));
+               g_object_unref (pixbuf);
+               pixbuf = rotated_pixbuf;
+       } else {
                /* There is no provided thumbnail.  We need to make one. */
                pixbuf = make_thumbnail_for_page (pdf_document, poppler_page, rc);
        }