I feel like most other major apps collate by default, and it is rather surprising each time Firefox doesn't.
Which print dialog? We only use the XUL print dialog for Linux, and it doesn't have a "collate" option. Mac and Windows use native print dialogs. On my computer (Windows XP), the "collate" checkbox is checked and disabled. I'm guessing this varies depending on your printer driver.
My printer supports collation, so I'm betting we just need to add DM_COLLATE to dmFields and set dmCollate to DMCOLLATE_TRUE somewhere around here: http://lxr.mozilla.org/seamonkey/source/widget/src/windows/nsDeviceContextSpecWin.cpp#644 According to http://msdn2.microsoft.com/en-us/library/ms535771.aspx I think the value we specify will be ignored if the printer doesn't support it. Weird that your WinXP system has it enabled by default, though...
On second thought... No. That function is never hit in my debugger. Great.
Created attachment 561652 [details] [diff] [review] Always show collate when opening printer settings dialog At first, my printers would come up with collate auto-on (and disabled since 1 copy by default). This is expected behavior and was working correctly. I did find a way to reproduce this though for a printer that supports collate having the default to off. I simply had to print first to One Note, and then go back into the print dialog. One Note only supports 1 copy prints and therefore no collate support. It now had the default collate option off for all printers, even the ones that support collate. What happens is that after you print to a printer that does not support collate, the setting is off for all printers for future prints. As soon as you print again to a printer that supports collate, the setting is back on for future prints for the printers that support it (even if you selected no collate). To fix I just explicitly set the collate option. I verified and it remains unchecked if the printer driver does not support collate. The problem is no longer reproducible with the above steps after the patch.
Pushed to inbound: http://hg.mozilla.org/integration/mozilla-inbound/rev/13ab1afb123a
https://hg.mozilla.org/mozilla-central/rev/d1fefdd17225 I accidentally pushed this patch to mozilla-central while it was living on inbound. On the next merge, it will be merged. Sorry for the mess!
Merged from inbound: https://hg.mozilla.org/mozilla-central/rev/13ab1afb123a