]> www.fi.muni.cz Git - evince.git/commitdiff
[printing] Preserve aspect ratio when scaling page for printing
authorAdrian Johnson <ajohnson@redneon.com>
Sat, 24 Oct 2009 06:41:48 +0000 (17:11 +1030)
committerCarlos Garcia Campos <carlosgc@gnome.org>
Sun, 25 Oct 2009 11:57:38 +0000 (12:57 +0100)
Fixes bgo#599468.

shell/ev-print-operation.c

index eb0f9becd32cb4020a3dc2f1358398c7fac7d345..8dbe6c5218f880a11834b15de7c05f25ea70733e 100644 (file)
@@ -1649,7 +1649,7 @@ ev_print_operation_print_draw_page (EvPrintOperationPrint *print,
        EvPrintOperation *op = EV_PRINT_OPERATION (print);
        cairo_t          *cr;
        gdouble           cr_width, cr_height;
-       gdouble           width, height;
+       gdouble           width, height, scale;
 
        gtk_print_operation_set_defer_drawing (print->op);
 
@@ -1670,7 +1670,11 @@ ev_print_operation_print_draw_page (EvPrintOperationPrint *print,
        cr_height = gtk_print_context_get_height (context);
        ev_document_get_page_size (op->document, page,
                                   &width, &height);
-       cairo_scale (cr, cr_width / width, cr_height / height);
+       if (cr_width / width < cr_height / height)
+               scale = cr_width / width;
+       else
+               scale = cr_height / height;
+       cairo_scale (cr, scale, scale);
 
        ev_job_print_set_cairo (EV_JOB_PRINT (print->job_print), cr);
        ev_job_scheduler_push_job (print->job_print, EV_JOB_PRIORITY_NONE);