]> www.fi.muni.cz Git - evince.git/blobdiff - pdf/ev-poppler.cc
Updated Russian translation.
[evince.git] / pdf / ev-poppler.cc
index 30b5a72e0964c6adacad8fd7532d7777174a0b79..4fb1d9a2e50c957bad2db783a8fde10a85d42c59 100644 (file)
@@ -775,7 +775,7 @@ ev_link_from_action (PopplerAction *action)
 
        switch (action->type) {
        case POPPLER_ACTION_UNKNOWN:
-               g_warning ("Unknown action"); 
+               link = ev_link_new_title (title);
                break;
        case POPPLER_ACTION_GOTO_DEST:
                link = ev_link_from_dest (action);
@@ -784,7 +784,8 @@ ev_link_from_action (PopplerAction *action)
                unimplemented_action = "POPPLER_ACTION_GOTO_REMOTE";
                break;
        case POPPLER_ACTION_LAUNCH:
-               unimplemented_action = "POPPLER_ACTION_LAUNCH";
+               link = ev_link_new_launch (title, action->launch.file_name,
+                                          action->launch.params);
                break;
        case POPPLER_ACTION_URI:
                link = ev_link_new_external (title, action->uri.uri);
@@ -885,11 +886,10 @@ static GdkPixbuf *
 make_thumbnail_for_size (PdfDocument   *pdf_document,
                         gint           page,
                         int            rotation,
-                        gint           size,
-                        gboolean       border)
+                        gint           size)
 {
        PopplerPage *poppler_page;
-       GdkPixbuf *pixbuf, *border_pixbuf;
+       GdkPixbuf *pixbuf;
        int width, height;
        double scale;
        gdouble unscaled_width, unscaled_height;
@@ -910,7 +910,7 @@ make_thumbnail_for_size (PdfDocument   *pdf_document,
                height = temp;
        }
 
-       pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,
+       pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8,
                                 width, height);
        gdk_pixbuf_fill (pixbuf, 0xffffffff);
 
@@ -918,11 +918,6 @@ make_thumbnail_for_size (PdfDocument   *pdf_document,
                                       width, height,
                                       scale, rotation, pixbuf);
        
-        if (border) {          
-               border_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, rotation, pixbuf);
-               g_object_unref (pixbuf);
-               pixbuf = border_pixbuf;
-       }               
 
        g_object_unref (poppler_page);
 
@@ -934,11 +929,12 @@ pdf_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document_thumbnails
                                       gint                  page,
                                       gint                  rotation,
                                       gint                  size,
-                                      gboolean              border)
+                                      gboolean              border)
 {
        PdfDocument *pdf_document;
        PopplerPage *poppler_page;
        GdkPixbuf *pixbuf;
+       GdkPixbuf *border_pixbuf;
 
        pdf_document = PDF_DOCUMENT (document_thumbnails);
 
@@ -947,20 +943,17 @@ pdf_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document_thumbnails
 
        pixbuf = poppler_page_get_thumbnail (poppler_page);
        
-       if (pixbuf != NULL) {
-               /* The document provides its own thumbnails. */
-               if (border) {
-                       GdkPixbuf *real_pixbuf;
-
-                       real_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, rotation, pixbuf);
-                       g_object_unref (pixbuf);
-                       pixbuf = real_pixbuf;
-               }
-       } else {
+       if (pixbuf == NULL) {
                /* There is no provided thumbnail.  We need to make one. */
-               pixbuf = make_thumbnail_for_size (pdf_document, page, rotation, size, border);
+               pixbuf = make_thumbnail_for_size (pdf_document, page, rotation, size);
        }
 
+        if (border) {          
+               border_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, rotation, pixbuf);
+               g_object_unref (pixbuf);
+               pixbuf = border_pixbuf;
+       }               
+
        g_object_unref (poppler_page);
        
        return pixbuf;
@@ -990,13 +983,8 @@ pdf_document_thumbnails_get_dimensions (EvDocumentThumbnails *document_thumbnail
                double page_width, page_height;
 
                poppler_page_get_size (poppler_page, &page_width, &page_height);
-               if (page_width > page_height) {
-                       *width = size;
-                       *height = (int) (size * page_height / page_width);
-               } else {
-                       *width = (int) (size * page_width / page_height);
-                       *height = size;
-               }
+               *width = size;
+               *height = (int) (size * page_height / page_width);
        }
        g_object_unref (poppler_page);
 }