diff options
Diffstat (limited to 'src/printsupport/dialogs/qprintdialog_mac.mm')
-rw-r--r-- | src/printsupport/dialogs/qprintdialog_mac.mm | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/printsupport/dialogs/qprintdialog_mac.mm b/src/printsupport/dialogs/qprintdialog_mac.mm index ecd1ef60cd..8ea3c9a11d 100644 --- a/src/printsupport/dialogs/qprintdialog_mac.mm +++ b/src/printsupport/dialogs/qprintdialog_mac.mm @@ -243,6 +243,7 @@ QPrintDialog::QPrintDialog(QPrinter *printer, QWidget *parent) Q_D(QPrintDialog); if (!warnIfNotNative(d->printer)) return; + setAttribute(Qt::WA_DontShowOnScreen); } QPrintDialog::QPrintDialog(QWidget *parent) @@ -251,6 +252,7 @@ QPrintDialog::QPrintDialog(QWidget *parent) Q_D(QPrintDialog); if (!warnIfNotNative(d->printer)) return; + setAttribute(Qt::WA_DontShowOnScreen); } QPrintDialog::~QPrintDialog() @@ -263,10 +265,15 @@ int QPrintDialog::exec() if (!warnIfNotNative(d->printer)) return QDialog::Rejected; + QDialog::setVisible(true); + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; d->openCocoaPrintPanel(Qt::ApplicationModal); d->closeCocoaPrintPanel(); [pool release]; + + QDialog::setVisible(false); + return result(); } @@ -286,6 +293,8 @@ void QPrintDialog::setVisible(bool visible) if (d->printer->outputFormat() != QPrinter::NativeFormat) return; + QDialog::setVisible(visible); + if (visible) { d->openCocoaPrintPanel(parentWidget() ? Qt::WindowModal : Qt::ApplicationModal); |