diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_GDI_Printer.cxx | 1 | ||||
| -rw-r--r-- | src/Fl_Paged_Device.cxx | 2 | ||||
| -rw-r--r-- | src/Fl_PostScript.cxx | 4 | ||||
| -rw-r--r-- | src/Fl_Quartz_Printer.mm | 6 |
4 files changed, 9 insertions, 4 deletions
diff --git a/src/Fl_GDI_Printer.cxx b/src/Fl_GDI_Printer.cxx index 7247da350..60366424f 100644 --- a/src/Fl_GDI_Printer.cxx +++ b/src/Fl_GDI_Printer.cxx @@ -55,6 +55,7 @@ static void WIN_SetupPrinterDeviceContext(HDC prHDC) int Fl_System_Printer::start_job (int pagecount, int *frompage, int *topage) // returns 0 iff OK { + if (pagecount == 0) pagecount = 10000; DWORD commdlgerr; DOCINFO di; char docName [256]; diff --git a/src/Fl_Paged_Device.cxx b/src/Fl_Paged_Device.cxx index 88eeef507..060837c24 100644 --- a/src/Fl_Paged_Device.cxx +++ b/src/Fl_Paged_Device.cxx @@ -146,7 +146,7 @@ void Fl_Paged_Device::print_window_part(Fl_Window *win, int x, int y, int w, int /** @brief Starts a print job. - @param[in] pagecount the total number of pages of the job + @param[in] pagecount the total number of pages of the job (or 0 if you don't know the number of pages) @param[out] frompage if non-null, *frompage is set to the first page the user wants printed @param[out] topage if non-null, *topage is set to the last page the user wants printed @return 0 if OK, non-zero if any error diff --git a/src/Fl_PostScript.cxx b/src/Fl_PostScript.cxx index 6becbd990..967e09cd9 100644 --- a/src/Fl_PostScript.cxx +++ b/src/Fl_PostScript.cxx @@ -1547,7 +1547,10 @@ void Fl_PostScript_File_Device::end_job (void) Fl_Display_Device::display_device()->set_current(); } +#endif // FL_DOXYGEN + #if ! (defined(__APPLE__) || defined(WIN32) ) +/** Starts a print job. */ int Fl_PostScript_Printer::start_job(int pages, int *firstpage, int *lastpage) { enum Fl_Paged_Device::Page_Format format; enum Fl_Paged_Device::Page_Layout layout; @@ -1645,7 +1648,6 @@ int Fl_PostScript_Printer::start_job(int pages, int *firstpage, int *lastpage) { #endif // ! (defined(__APPLE__) || defined(WIN32) ) -#endif // FL_DOXYGEN // // End of "$Id$". diff --git a/src/Fl_Quartz_Printer.mm b/src/Fl_Quartz_Printer.mm index 9770532f6..fba79c5e5 100644 --- a/src/Fl_Quartz_Printer.mm +++ b/src/Fl_Quartz_Printer.mm @@ -80,8 +80,10 @@ int Fl_System_Printer::start_job (int pagecount, int *frompage, int *topage) PMGetFirstPage(printSettings, &from32); if (frompage) *frompage = (int)from32; PMGetLastPage(printSettings, &to32); - if (topage) *topage = (int)to32; - if(topage && *topage > pagecount) *topage = pagecount; + if (topage) { + *topage = (int)to32; + if (*topage > pagecount && pagecount > 0) *topage = pagecount; + } status = PMSessionBeginCGDocumentNoDialog(printSession, printSettings, pageFormat);//from 10.4 } else |
