Reviewed by Kevin Ollivier.
authorkevino@webkit.org <kevino@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 9 Jul 2011 19:29:47 +0000 (19:29 +0000)
committerkevino@webkit.org <kevino@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 9 Jul 2011 19:29:47 +0000 (19:29 +0000)
Make sure wxPrintData grabs the default print settings to calculate page width,
and readjusts settings after the print dialog is displayed.

https://bugs.webkit.org/show_bug.cgi?id=64232

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@90683 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/wx/ChangeLog
Source/WebKit/wx/WebFrame.cpp

index 42e7bb4..48ff996 100644 (file)
@@ -1,3 +1,17 @@
+2011-07-08  Robin Dunn  <robin@alldunn.com>
+
+        Reviewed by Kevin Ollivier.
+
+        Make sure wxPrintData grabs the default print settings to calculate page width, 
+        and readjusts settings after the print dialog is displayed.
+        
+        https://bugs.webkit.org/show_bug.cgi?id=64232
+
+        * WebFrame.cpp:
+        (wxWebFramePrintout::InitializeWithPageSize):
+        (wxWebFramePrintout::OnBeginPrinting):
+        (wxWebFrame::Print):
+
 2011-07-06  Kevin Ollivier  <kevino@theolliviers.com>
 
         [wx] Unreviewed build fix. Don't expose the kit function to the swig wrappers.
index c420a90..af472e1 100644 (file)
@@ -117,7 +117,7 @@ public:
         pageRect.y = pageRect.y * mmToPixelsY;
         pageRect.width = pageRect.width * mmToPixelsX;
         pageRect.height = pageRect.height * mmToPixelsY;
-
+        
         m_pageWidth = pageRect.width;
         m_printContext.begin(m_pageWidth);
         
@@ -129,6 +129,11 @@ public:
     {
         wxPrinterDC* pdc = dynamic_cast<wxPrinterDC*>(GetDC());
         pdc->SetMapMode(wxMM_POINTS);
+        int pageWidth = 0;
+        int pageHeight = 0;
+        GetPageSizeMM(&pageWidth, &pageHeight);
+        
+        InitializeWithPageSize(wxRect(0, 0, pageWidth, pageHeight));
     }
     
     void GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo)
@@ -579,9 +584,9 @@ void wxWebFrame::Print(bool showDialog)
     
     wxPrintDialogData printdata;
     printdata.GetPrintData().SetPrintMode(wxPRINT_MODE_PRINTER);
-    printdata.GetPrintData().SetPaperId(wxPAPER_LETTER);
     printdata.GetPrintData().SetNoCopies(1);
-        
+    printdata.GetPrintData().ConvertFromNative();
+    
     wxPageSetupDialogData pageSetup(printdata.GetPrintData());
 
     wxRect paperSize = pageSetup.GetPaperSize();
@@ -598,19 +603,17 @@ void wxWebFrame::Print(bool showDialog)
     printdata.SetFromPage(1);
     printdata.SetToPage(printout->GetPageCount());
 
-    wxPrintDialogData data(printdata);
-
     if (showDialog) {
-        wxPrintDialog dialog(0, &data);
+        wxPrintDialog dialog(0, &printdata);
         if (dialog.ShowModal() == wxID_OK) {
-            data = dialog.GetPrintDialogData();
-            printout->SetFirstPage(data.GetFromPage());
-            printout->SetLastPage(data.GetToPage());
+            wxPrintDialogData updatedPrintdata = dialog.GetPrintDialogData();            
+            printout->SetFirstPage(updatedPrintdata.GetFromPage());
+            printout->SetLastPage(updatedPrintdata.GetToPage());
         } else
             return;
     }
     
-    wxPrinter printer(&data);
+    wxPrinter printer(&printdata);
         
     printer.Print(0, printout, false);