X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c690ae86dbaecac59a8e16b1ea2fb4d368d62468..5b3610dab2f75e518fefa8a9ad3076b6366b054a:/src/gtk/app.cpp diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index a1bdce64aa..e3badff237 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -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(); }