diff options
author | Prasanth Ullattil <prasanth.ullattil@nokia.com> | 2010-04-15 10:34:16 (GMT) |
---|---|---|
committer | Prasanth Ullattil <prasanth.ullattil@nokia.com> | 2010-04-15 11:29:03 (GMT) |
commit | 0d80dbc176afa997af7d897344e5a8bfec0317dc (patch) | |
tree | df8002ccf8908ee7e56bad4fcff865b0381f4563 /src/gui/painting/qprintengine_mac.mm | |
parent | e4282111378ce67a1ae9c235efbd89b327f1bb91 (diff) | |
download | Qt-0d80dbc176afa997af7d897344e5a8bfec0317dc.zip Qt-0d80dbc176afa997af7d897344e5a8bfec0317dc.tar.gz Qt-0d80dbc176afa997af7d897344e5a8bfec0317dc.tar.bz2 |
Crash while printing from the portedcanvas example on Mac Cocoa.
The PMPrintSession inside the NSPrintInfo can get changed by the
NSPageLayout. Refresh the session pointer saved in the
QMacPrintEnginePrivate after showing the page setup dialog.
Task-number: QTBUG-9880
Reviewed-by: Trond
Diffstat (limited to 'src/gui/painting/qprintengine_mac.mm')
-rw-r--r-- | src/gui/painting/qprintengine_mac.mm | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gui/painting/qprintengine_mac.mm b/src/gui/painting/qprintengine_mac.mm index 3d5d1d5..a548225 100644 --- a/src/gui/painting/qprintengine_mac.mm +++ b/src/gui/painting/qprintengine_mac.mm @@ -114,8 +114,11 @@ bool QMacPrintEngine::end() Q_D(QMacPrintEngine); if (d->state == QPrinter::Aborted) return true; // I was just here a function call ago :) - if(d->paintEngine->type() == QPaintEngine::CoreGraphics) + if(d->paintEngine->type() == QPaintEngine::CoreGraphics) { + // We dont need the paint engine to call restoreGraphicsState() + static_cast<QCoreGraphicsPaintEngine*>(d->paintEngine)->d_func()->stackCount = 0; static_cast<QCoreGraphicsPaintEngine*>(d->paintEngine)->d_func()->hd = 0; + } d->paintEngine->end(); if (d->state != QPrinter::Idle) d->releaseSession(); |