Title: [107948] trunk/Source/WebKit2
Revision
107948
Author
carlo...@webkit.org
Date
2012-02-16 09:16:10 -0800 (Thu, 16 Feb 2012)

Log Message

[GTK] Page content is incorrectly translated whenh rendering pages for printing in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=78712

Reviewed by Martin Robinson.

* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
(WebKit::WebPrintOperationGtk::enumeratePrintersFunction):
Simplify the code to select the printer.
(WebKit::WebPrintOperationGtk::renderPage): Call cairo_save()
before rendering the page and cairo_restore() when page has been
rendered.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (107947 => 107948)


--- trunk/Source/WebKit2/ChangeLog	2012-02-16 17:10:58 UTC (rev 107947)
+++ trunk/Source/WebKit2/ChangeLog	2012-02-16 17:16:10 UTC (rev 107948)
@@ -1,5 +1,19 @@
 2012-02-16  Carlos Garcia Campos  <cgar...@igalia.com>
 
+        [GTK] Page content is incorrectly translated whenh rendering pages for printing in WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=78712
+
+        Reviewed by Martin Robinson.
+
+        * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
+        (WebKit::WebPrintOperationGtk::enumeratePrintersFunction):
+        Simplify the code to select the printer.
+        (WebKit::WebPrintOperationGtk::renderPage): Call cairo_save()
+        before rendering the page and cairo_restore() when page has been
+        rendered.
+
+2012-02-16  Carlos Garcia Campos  <cgar...@igalia.com>
+
         [GTK] Add WebKitPrintOperation to WebKit2 GTK+ API
         https://bugs.webkit.org/show_bug.cgi?id=76448
 

Modified: trunk/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp (107947 => 107948)


--- trunk/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp	2012-02-16 17:10:58 UTC (rev 107947)
+++ trunk/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp	2012-02-16 17:16:10 UTC (rev 107948)
@@ -55,21 +55,15 @@
 
     static gboolean enumeratePrintersFunction(GtkPrinter* printer, WebPrintOperationGtkUnix* printOperation)
     {
-        GtkPrinter* selectedPrinter = 0;
         const char* printerName = gtk_print_settings_get_printer(printOperation->printSettings());
-        if (printerName) {
-            if (!strcmp(printerName, gtk_printer_get_name(printer)))
-                selectedPrinter = printer;
-        } else if (gtk_printer_is_default(printer))
-            selectedPrinter = printer;
-
-        if (!selectedPrinter)
+        if ((printerName && strcmp(printerName, gtk_printer_get_name(printer)))
+            || (!printerName && !gtk_printer_is_default(printer)))
             return FALSE;
 
         static int jobNumber = 0;
         const char* applicationName = g_get_application_name();
         GOwnPtr<char>jobName(g_strdup_printf("%s job #%d", applicationName ? applicationName : "WebKit", ++jobNumber));
-        printOperation->m_printJob = adoptGRef(gtk_print_job_new(jobName.get(), selectedPrinter,
+        printOperation->m_printJob = adoptGRef(gtk_print_job_new(jobName.get(), printer,
                                                                  printOperation->printSettings(),
                                                                  printOperation->pageSetup()));
         return TRUE;
@@ -327,6 +321,7 @@
 void WebPrintOperationGtk::renderPage(int pageNumber)
 {
     startPage(m_cairoContext.get());
+    cairo_save(m_cairoContext.get());
 
     if (m_needsRotation)
         rotatePage();
@@ -340,6 +335,7 @@
     WebCore::GraphicsContext graphicsContext(&platformContext);
     m_printContext->spoolPage(graphicsContext, pageNumber, pageWidth);
 
+    cairo_restore(m_cairoContext.get());
     endPage(m_cairoContext.get());
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to