print: windows: Fix setting page orientation
Previously when PPK_Orientation property was set, updateMetrics() was called before doReinit() and updateMetrics() used physical dimensions of the DC initialized with previous orientation, which resulted in miscalculation of m_paintRectPixels, origin_x and origin_y variables. This bug manifested itself as all sorts of weird behavior, such as unexpected margins when changing paper size and printing beyond paper margins. Pick-to: 6.5 Change-Id: I2d0e104bee11165e3541e7f3119b29edd4b882c8 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit 223b92490edfd4e3e75e634831258c54d5b0a501) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
164363e186
commit
ff5bda7e11
@ -1150,8 +1150,8 @@ void QWin32PrintEngine::setProperty(PrintEnginePropertyKey key, const QVariant &
|
||||
d->devMode->dmOrientation = orientation == QPageLayout::Landscape ? DMORIENT_LANDSCAPE : DMORIENT_PORTRAIT;
|
||||
d->devMode->dmFields |= DM_ORIENTATION;
|
||||
d->m_pageLayout.setOrientation(orientation);
|
||||
d->updateMetrics();
|
||||
d->doReinit();
|
||||
d->updateMetrics();
|
||||
#ifdef QT_DEBUG_METRICS
|
||||
qDebug() << "QWin32PrintEngine::setProperty(PPK_Orientation," << orientation << ')';
|
||||
d->debugMetrics();
|
||||
|
Loading…
x
Reference in New Issue
Block a user