Made OnInit() and OnRun() logic like MSW when it

comes to quitting the app with no windows.
  Fixed overlapping windows when detaching the
    toolbar from the main frame.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15364 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2002-05-04 11:53:06 +00:00
parent 6d8b260cc3
commit 047ac72bbe
4 changed files with 84 additions and 86 deletions

View File

@@ -816,33 +816,24 @@ int wxEntry( int argc, char *argv[] )
if ( retValue == 0 )
{
/* delete pending toplevel windows (typically a single
dialog) so that, if there isn't any left, we don't
call OnRun() */
// Delete pending toplevel windows
wxTheApp->DeletePendingObjects();
wxTheApp->m_initialized = wxTopLevelWindows.GetCount() != 0;
// When is the app not initialized ?
wxTheApp->m_initialized = TRUE;
if (wxTheApp->Initialized())
{
wxTheApp->OnRun();
wxWindow *topWindow = wxTheApp->GetTopWindow();
// Delete all pending windows if any
wxTheApp->DeletePendingObjects();
// Reset top window
if (topWindow)
{
/* Forcibly delete the window. */
if (topWindow->IsKindOf(CLASSINFO(wxFrame)) ||
topWindow->IsKindOf(CLASSINFO(wxDialog)) )
{
topWindow->Close( TRUE );
wxTheApp->DeletePendingObjects();
}
else
{
delete topWindow;
wxTheApp->SetTopWindow( (wxWindow*) NULL );
}
}
wxTheApp->SetTopWindow( (wxWindow*) NULL );
retValue = wxTheApp->OnExit();
}