diff -r 4fca8bcfaff0 -r e13d3147f15b QTfrontend/util/MessageDialog.cpp --- a/QTfrontend/util/MessageDialog.cpp Sun Jun 15 00:02:25 2014 +0200 +++ b/QTfrontend/util/MessageDialog.cpp Sun Jun 15 04:33:54 2014 +0200 @@ -47,26 +47,26 @@ int MessageDialog::ShowMessage(const QString & title, const QString & msg, QMessageBox::Icon icon, QWidget * parent) { - QMessageBox msgMsg(parent ? parent : HWApplication::activeWindow()); + // if no parent try to use active window + parent = parent ? parent : HWApplication::activeWindow(); + + // didn't work? make child of hwform (e.g. for style and because modal) + if (!parent) + { + try + { + HWApplication * app = dynamic_cast(HWApplication::instance()); + if (app->form) + parent = app->form; + } + catch (...) { /* nothing */ } + } + + QMessageBox msgMsg(parent); msgMsg.setWindowTitle(title != NULL ? title : "Hedgewars"); msgMsg.setText(msg); msgMsg.setIcon(icon); msgMsg.setWindowModality(Qt::WindowModal); - if (!parent) - { - try - { - /* workaround to make sure style is correct - * I'd rather assign the stylesheet to qApp directly (in main.cpp), - * but the current Stylesheet will ruin the look (e.g. map selection) :( - */ - HWApplication * app = dynamic_cast(HWApplication::instance()); - if (app->form) - msgMsg.setStyleSheet(app->form->styleSheet()); - } - catch (...) { /* nothing */ } - } - return msgMsg.exec(); }