summaryrefslogtreecommitdiffstats
path: root/src/printsupport/kernel
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2014-07-07 16:22:14 +0200
committerFriedemann Kleint <Friedemann.Kleint@digia.com>2014-07-21 10:38:13 +0200
commitcf5e49681399c94b996a7b8b9299177361d926c1 (patch)
tree48564a977c1e7a95b8cc234641b4ad5fe2da8f10 /src/printsupport/kernel
parente746e2a11a1fb0b4603df3d8740b09b362116698 (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.cpp5
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;
}
}