Hi all,

Using the very latest CVS heads for both wxWindows and Mahogany on
Windows XP, I notice that the HTML viewer only prints the first page of
the message. This problem was previously only present in the default
viewer.

The problem shows up as the following:
- display a long message using the HTML viewer
- choose Message->Print
- Make sure that:
  - the page range is exactly equal to 1
  - but 'All' is selected 
- Select a printer
- Click 'Ok'

Only the first page of the message is printed. 

Using the debugger, you will notice once you click 'Ok' that around line
140 wx/src/msw/printwin.cpp, the following holds:
  m_printDialogData.m_printFromPage = 1
  m_printDialogData.m_printToPage = 1
  m_printDialogData.m_printMinPage = 1
  m_printDialogData.m_printMaxPage = 9999
  m_printDialogData.m_printAllPages = 1

This may be considered correct, as the 'All pages' boolean is actually
true. The problem is that this field does not seem to be actually
checked. 

The following change in wxWindows seems to correct the problem, but I'm
not sure at all this is the correct way to do it.

cvs -z3 diff -u -wb printwin.cpp (in directory U:\src\wxWindows\src\msw\)
Index: printwin.cpp
===================================================================
RCS file: /pack/cvsroots/wxwindows/wxWindows/src/msw/printwin.cpp,v
retrieving revision 1.29
diff -u -w -b -r1.29 printwin.cpp
--- printwin.cpp        2003/08/15 10:17:14     1.29
+++ printwin.cpp        2003/09/22 13:09:35
@@ -134,6 +134,9 @@
         return FALSE;
     }
 
+    if (m_printDialogData.GetAllPages())
+        m_printDialogData.SetToPage(m_printDialogData.GetMaxPage());
+
     int logPPIScreenX = 0;
     int logPPIScreenY = 0;
     int logPPIPrinterX = 0;



-- 
Xavier Nodet
"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety." - Benjamin Franklin, 1759.


Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to