Bug 1271900: Don't require a minimum page size when setting up DEVMODE from print settings. r?jimm
MozReview-Commit-ID: ByO4KHPtkkM
--- a/widget/windows/nsPrintSettingsWin.cpp
+++ b/widget/windows/nsPrintSettingsWin.cpp
@@ -246,27 +246,28 @@ nsPrintSettingsWin::CopyToNative(DEVMODE
if (mPaperSizeUnit == kPaperSizeMillimeters) {
paperHeight = mPaperHeight;
paperWidth = mPaperWidth;
} else {
paperHeight = mPaperHeight * MM_PER_INCH_FLOAT;
paperWidth = mPaperWidth * MM_PER_INCH_FLOAT;
}
- // Set a sensible limit on the minimum height and width.
- if (paperHeight >= MM_PER_INCH_FLOAT) {
+ // Note: small page sizes can be required here for sticker, label and slide
+ // printers etc. see bug 1271900.
+ if (paperHeight > 0) {
// In DEVMODEs, physical lengths are stored in tenths of millimeters.
aDevMode->dmPaperLength = paperHeight * 10l;
aDevMode->dmFields |= DM_PAPERLENGTH;
} else {
aDevMode->dmPaperLength = 0;
aDevMode->dmFields &= ~DM_PAPERLENGTH;
}
- if (paperWidth >= MM_PER_INCH_FLOAT) {
+ if (paperWidth > 0) {
aDevMode->dmPaperWidth = paperWidth * 10l;
aDevMode->dmFields |= DM_PAPERWIDTH;
} else {
aDevMode->dmPaperWidth = 0;
aDevMode->dmFields &= ~DM_PAPERWIDTH;
}
// Setup Orientation