]> www.fi.muni.cz Git - evince.git/commitdiff
Adapt to the new poppler rotation API. Fix text maps on landscape
authorMarco Pesenti Gritti <mpg@redhat.com>
Tue, 23 Aug 2005 08:33:52 +0000 (08:33 +0000)
committerMarco Pesenti Gritti <marco@src.gnome.org>
Tue, 23 Aug 2005 08:33:52 +0000 (08:33 +0000)
2005-08-23  Marco Pesenti Gritti  <mpg@redhat.com>

        * pdf/ev-poppler.cc:
        * ps/ps-document.c: (push_pixbuf), (ps_document_widget_event):
        * shell/ev-view.c: (highlight_find_results):

        Adapt to the new poppler rotation API. Fix text maps on landscape
        documents.

ChangeLog
pdf/ev-poppler.cc
ps/ps-document.c
shell/ev-view.c

index 761137ccff2af6badb708f868e87ce4749a73c11..ccb5f5587697d450b221d494f42f6637fa75743f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-08-23  Marco Pesenti Gritti  <mpg@redhat.com>
+
+       * pdf/ev-poppler.cc:
+       * ps/ps-document.c: (push_pixbuf), (ps_document_widget_event):
+       * shell/ev-view.c: (highlight_find_results):
+
+       Adapt to the new poppler rotation API. Fix text maps on landscape
+       documents.
+
 Sat Aug 20 17:13:48 2005  Jonathan Blandford  <jrb@redhat.com>
 
        * shell/ev-view.c (compute_new_selection_text): get the correct
index ef95956e6a6a2225b1b1f81dbad0571979067b01..4be0e7caa782bc5b1c7a124728398ad7906cd31f 100644 (file)
@@ -243,28 +243,6 @@ pdf_document_get_n_pages (EvDocument *document)
        return poppler_document_get_n_pages (PDF_DOCUMENT (document)->document);
 }
 
-static void
-set_page_orientation (PdfDocument *pdf_document, PopplerPage *page, int rotation)
-{
-       PopplerOrientation orientation;
-
-       switch (rotation) {
-       case 90:
-               orientation = POPPLER_ORIENTATION_LANDSCAPE;
-               break;
-       case 180:
-               orientation = POPPLER_ORIENTATION_UPSIDEDOWN;
-               break;
-       case 270:
-               orientation = POPPLER_ORIENTATION_SEASCAPE;
-               break;
-       default:
-               orientation = POPPLER_ORIENTATION_PORTRAIT;
-       }
-
-       poppler_page_set_orientation (page, orientation);
-}
-
 static void
 pdf_document_get_page_size (EvDocument   *document,
                            int           page,
@@ -349,11 +327,16 @@ pdf_document_render_pixbuf (EvDocument   *document,
        pdf_document = PDF_DOCUMENT (document);
 
        set_rc_data (pdf_document, rc);
-       set_page_orientation (pdf_document, POPPLER_PAGE (rc->data), rc->rotation);
 
        poppler_page_get_size (POPPLER_PAGE (rc->data), &width_points, &height_points);
-       width = (int) ((width_points * rc->scale) + 0.5);
-       height = (int) ((height_points * rc->scale) + 0.5);
+
+       if (rc->rotation == 90 || rc->rotation == 270) {
+               width = (int) ((height_points * rc->scale) + 0.5);
+               height = (int) ((width_points * rc->scale) + 0.5);
+       } else {
+               width = (int) ((width_points * rc->scale) + 0.5);
+               height = (int) ((height_points * rc->scale) + 0.5);
+       }
 
        pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
                                 FALSE, 8,
@@ -363,6 +346,7 @@ pdf_document_render_pixbuf (EvDocument   *document,
                                       0, 0,
                                       width, height,
                                       rc->scale,
+                                      rc->rotation,
                                       pixbuf);
        
        
@@ -817,7 +801,6 @@ make_thumbnail_for_size (PdfDocument   *pdf_document,
        gdouble unscaled_width, unscaled_height;
 
        poppler_page = poppler_document_get_page (pdf_document->document, page);
-       set_page_orientation (pdf_document, poppler_page, rotation);
        g_return_val_if_fail (poppler_page != NULL, NULL);
 
        pdf_document_thumbnails_get_dimensions (EV_DOCUMENT_THUMBNAILS (pdf_document), page,
@@ -842,7 +825,7 @@ make_thumbnail_for_size (PdfDocument   *pdf_document,
 
        poppler_page_render_to_pixbuf (poppler_page, 0, 0,
                                       width, height,
-                                      scale, sub_pixbuf);
+                                      scale, rotation, sub_pixbuf);
 
        g_object_unref (G_OBJECT (sub_pixbuf));
 
@@ -864,7 +847,6 @@ pdf_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document_thumbnails
        pdf_document = PDF_DOCUMENT (document_thumbnails);
 
        poppler_page = poppler_document_get_page (pdf_document->document, page);
-       set_page_orientation (pdf_document, poppler_page, rotation);
        g_return_val_if_fail (poppler_page != NULL, NULL);
 
        pixbuf = poppler_page_get_thumbnail (poppler_page);
@@ -1151,7 +1133,6 @@ pdf_document_ps_exporter_do_page (EvPSExporter *exporter, EvRenderContext *rc)
        g_return_if_fail (pdf_document->ps_file != NULL);
 
        poppler_page = poppler_document_get_page (pdf_document->document, rc->page);
-       set_page_orientation (pdf_document, poppler_page, rc->rotation);
        poppler_page_render_to_ps (poppler_page, pdf_document->ps_file);
        g_object_unref (poppler_page);
 }
@@ -1190,8 +1171,6 @@ pdf_selection_render_selection (EvSelection      *selection,
        pdf_document = PDF_DOCUMENT (selection);
        set_rc_data (pdf_document, rc);
 
-       set_page_orientation (pdf_document, POPPLER_PAGE (rc->data), rc->rotation);
-
        poppler_page_get_size (POPPLER_PAGE (rc->data), &width_points, &height_points);
        width = (int) ((width_points * rc->scale) + 0.5);
        height = (int) ((height_points * rc->scale) + 0.5);
@@ -1222,7 +1201,6 @@ pdf_selection_get_selection_region (EvSelection     *selection,
        pdf_document = PDF_DOCUMENT (selection);
 
        set_rc_data (pdf_document, rc);
-       set_page_orientation (pdf_document, POPPLER_PAGE (rc->data), rc->rotation);
 
        retval = poppler_page_get_selection_region ((PopplerPage *)rc->data, rc->scale, (PopplerRectangle *) points);
 
@@ -1241,7 +1219,6 @@ pdf_selection_get_selection_map (EvSelection     *selection,
        pdf_document = PDF_DOCUMENT (selection);
        poppler_page = poppler_document_get_page (pdf_document->document,
                                                  rc->page);
-       set_page_orientation (pdf_document, poppler_page, rc->rotation);
 
        points.x1 = 0.0;
        points.y1 = 0.0;
index 5a4a457183e8205a0664e7bdd5be3d23d23d60e7..f95dfe0f3a0764a999893f2cc2337db4a23e2563 100644 (file)
@@ -215,9 +215,11 @@ push_pixbuf (PSDocument *gs)
 
        cmap = gdk_window_get_colormap (gs->pstarget);
        gdk_drawable_get_size (gs->bpixmap, &width, &height);
+       LOG ("Get from drawable\n");
        pixbuf =  gdk_pixbuf_get_from_drawable (NULL, gs->bpixmap, cmap,
                                                0, 0, 0, 0,
                                                width, height);
+       LOG ("Get from drawable done\n");
        g_signal_emit_by_name (gs, "render_finished", pixbuf);
        g_object_unref (pixbuf);
 }
@@ -247,6 +249,7 @@ ps_document_widget_event (GtkWidget *widget, GdkEvent *event, gpointer data)
                gs->busy = FALSE;
 
                push_pixbuf (gs);
+               LOG ("Pixbuf pushed");
        }
 
        return TRUE;
index 70555545668d8c842508053eb82ba850b121fcfa..1e954594fa5359bdbbe445e93005d3de25a0a839 100644 (file)
@@ -1686,8 +1686,7 @@ highlight_find_results (EvView *view, int page)
                        alpha = 0x20;
                }
 
-               ev_document_find_get_result (find, page,
-                                            i, &rectangle);
+               ev_document_find_get_result (find, page, i, &rectangle);
                doc_rect_to_view_rect (view, page, &rectangle, &view_rectangle);
                draw_rubberband (GTK_WIDGET (view), GTK_WIDGET(view)->window,
                                 &view_rectangle, alpha);