diff options
Diffstat (limited to 'src/printsupport/kernel/qprintengine_win.cpp')
-rw-r--r-- | src/printsupport/kernel/qprintengine_win.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/printsupport/kernel/qprintengine_win.cpp b/src/printsupport/kernel/qprintengine_win.cpp index da328418b7..74484bfc8c 100644 --- a/src/printsupport/kernel/qprintengine_win.cpp +++ b/src/printsupport/kernel/qprintengine_win.cpp @@ -1993,13 +1993,17 @@ static void draw_text_item_win(const QPointF &pos, const QTextItemInt &ti, HDC h void QWin32PrintEnginePrivate::updateCustomPaperSize() { const uint paperSize = devMode->dmPaperSize; + const double multiplier = qt_multiplierForUnit(QPrinter::Millimeter, resolution); has_custom_paper_size = false; - if (paperSize > 0 && mapDevmodePaperSize(paperSize) == QPrinter::Custom) { + if (paperSize == DMPAPER_USER) { + has_custom_paper_size = true; + paper_size = QSizeF((devMode->dmPaperWidth / 10.0) * multiplier, (devMode->dmPaperLength / 10.0) * multiplier); + } else if (mapDevmodePaperSize(paperSize) == QPrinter::Custom) { has_custom_paper_size = true; const QList<QPair<QSizeF, int> > paperSizes = printerPaperSizes(name); for (int i=0; i<paperSizes.size(); i++) { if ((uint)paperSizes.at(i).second == paperSize) { - paper_size = paperSizes.at(i).first; + paper_size = paperSizes.at(i).first * multiplier; has_custom_paper_size = false; break; } |