allow people use modal dialogs in wxApp::OnInit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9081 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -724,15 +724,33 @@ int wxEntry(WXHINSTANCE hInstance,
|
|||||||
|
|
||||||
int retValue = 0;
|
int retValue = 0;
|
||||||
|
|
||||||
if ( wxTheApp->OnInit() )
|
// it is common to create a modal dialog in OnInit() (to ask/notify the
|
||||||
|
// user about something) but it wouldn't work if we don't change the
|
||||||
|
// "exit on delete last frame" flag here as when this dialog is
|
||||||
|
// deleted, the app would terminate (it was the last top level window
|
||||||
|
// as the main frame wasn't created yet!), so disable this behaviour
|
||||||
|
// temproarily
|
||||||
|
bool exitOnLastFrameDelete = wxTheApp->GetExitOnFrameDelete();
|
||||||
|
wxTheApp->SetExitOnFrameDelete(FALSE);
|
||||||
|
|
||||||
|
// init the app
|
||||||
|
retValue = wxTheApp->OnInit() ? 0 : -1;
|
||||||
|
|
||||||
|
// restore the old flag value
|
||||||
|
wxTheApp->SetExitOnFrameDelete(exitOnLastFrameDelete);
|
||||||
|
|
||||||
|
if ( retValue == 0 )
|
||||||
{
|
{
|
||||||
if ( enterLoop )
|
if ( enterLoop )
|
||||||
{
|
{
|
||||||
|
// run the main loop
|
||||||
retValue = wxTheApp->OnRun();
|
retValue = wxTheApp->OnRun();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
// We want to initialize, but not run or exit immediately.
|
{
|
||||||
|
// we want to initialize, but not run or exit immediately.
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//else: app initialization failed, so we skipped OnRun()
|
//else: app initialization failed, so we skipped OnRun()
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user