Mac Crash Dialog hidden by Splash Screen
I have the following problem with my application on OSX (Mavericks, but I don't think it's specific to the version). Restarting the app after a crash causes the OS to show its crash dialog: "The last time you opened <app name> it unexpectedly quit while reopening windows. Do you want to try to reopen its windows again?"
The problem is that
- The application can't proceed until the user dismisses the crash dialog
- My application's splash screen covers up the crash dialog - so it can't be dismissed
the OS appears to show the crash dialog when the splash screen is shown (when I step through in the debugger, it's the call to splash->show() that doesn't return). I tried setting a QTimer before I show() the splash, so that at least the splash would close eventually ... but the tick event never fires. Apparently the OS suspends the app.
Any suggestions? Does anyone understand the details of how/when the OS execs that dialog?
did you set the spash screen to be always on top (Qt::WindowStaysOnTopHint)?
if not you might try to call QWidget::lower() but I think that onyl works for Qt widgets and not other windows running on the system :/
What exact version of Qt are you using ?
[quote author="SGaist" date="1395347657"]Hi,
What exact version of Qt are you using ?[/quote]
5.2.1 - Sorry, I should have put that in my original post.
Can you try with Qt 5.3 to see whether it still gives you that problem ?
[quote author="Xander84" date="1395346847"]did you set the spash screen to be always on top (Qt::WindowStaysOnTopHint)?
if not you might try to call QWidget::lower() but I think that onyl works for Qt widgets and not other windows running on the system :/[/quote]
I did have WindowStaysOnTopHint set, but removing it didn't make any difference.
[quote author="SGaist" date="1395354457"]Can you try with Qt 5.3 to see whether it still gives you that problem ?[/quote]
It appears to persist in 5.3. (But even if it didn't, I'd still need a workaround for 5.2.1 as our project is already locked into that version.)
Hi, if you don't like that crash dialog you can disable it, start Terminal and type:
@defaults write com.apple.CrashReporter DialogType none@
Then you need to start your app one time (without crashing!) and exit it, for this to work nicely.
You can read more "for example here":http://apple.stackexchange.com/questions/80900/suppressing-reopen-windows-dialog-when-restarting-a-crashed-program-in-mountai