Windows printing: Preserve painter when syncing state.

Fix a performance regression introduced by
58bb42dc2c . 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>
This commit is contained in:
Friedemann Kleint 2014-07-07 16:22:14 +02:00
parent e746e2a11a
commit cf5e496813

View File

@ -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;
}
}