diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-07-07 16:22:14 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-07-21 10:38:13 +0200 |
commit | cf5e49681399c94b996a7b8b9299177361d926c1 (patch) | |
tree | 48564a977c1e7a95b8cc234641b4ad5fe2da8f10 /src/printsupport/kernel | |
parent | e746e2a11a1fb0b4603df3d8740b09b362116698 (diff) |
Windows printing: Preserve painter when syncing state.
Fix a performance regression introduced by
58bb42dc2c338338b7b6079993ace3d55c2e1d7e . The picture painter
was replaced by another painter.
Task-number: QTBUG-40068
Task-number: QTBUG-38329
Change-Id: Ida51edd61c197f862adebdcdc685ebc105fe07a8
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/printsupport/kernel')
-rw-r--r-- | src/printsupport/kernel/qpaintengine_alpha.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/printsupport/kernel/qpaintengine_alpha.cpp b/src/printsupport/kernel/qpaintengine_alpha.cpp index ddfa918b90..6d292a6a71 100644 --- a/src/printsupport/kernel/qpaintengine_alpha.cpp +++ b/src/printsupport/kernel/qpaintengine_alpha.cpp @@ -346,7 +346,10 @@ void QAlphaPaintEngine::flushAndInit(bool init) d->m_picpainter->setOpacity(painter()->opacity()); d->m_picpainter->setTransform(painter()->combinedTransform()); d->m_picengine->syncState(); - *d->m_picpainter->d_func()->state = *painter()->d_func()->state; + QPainterState &state = *d->m_picpainter->d_func()->state; + QPainter *oldPainter = state.painter; + state = *painter()->d_func()->state; + state.painter = oldPainter; } } |