X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0bca03736369e836cce9297509505c5972e775dd..d10e22fe8ad283f37b1809349028ffc282e393ce:/src/common/appcmn.cpp diff --git a/src/common/appcmn.cpp b/src/common/appcmn.cpp index 516a0acf10..fb02e6b93d 100644 --- a/src/common/appcmn.cpp +++ b/src/common/appcmn.cpp @@ -25,10 +25,9 @@ #endif #ifndef WX_PRECOMP - #include "wx/list.h" #include "wx/app.h" + #include "wx/window.h" #include "wx/bitmap.h" - #include "wx/intl.h" #include "wx/log.h" #include "wx/msgdlg.h" #include "wx/confbase.h" @@ -40,6 +39,7 @@ #include "wx/evtloop.h" #include "wx/msgout.h" #include "wx/thread.h" +#include "wx/vidmode.h" #include "wx/ptr_scpd.h" #if defined(__WXMSW__) @@ -157,6 +157,21 @@ void wxAppBase::CleanUp() #endif // wxUSE_THREADS } +// ---------------------------------------------------------------------------- + +wxWindow* wxAppBase::GetTopWindow() const +{ + wxWindow* window = m_topWindow; + if (window == NULL && wxTopLevelWindows.GetCount() > 0) + window = wxTopLevelWindows.GetFirst()->GetData(); + return window; +} + +wxVideoMode wxAppBase::GetDisplayMode() const +{ + return wxVideoMode(); +} + #if wxUSE_CMDLINE_PARSER // ---------------------------------------------------------------------------- @@ -366,11 +381,14 @@ void wxAppBase::DeletePendingObjects() { wxObject *obj = node->GetData(); - delete obj; - - if (wxPendingDelete.Member(obj)) + // remove it from the list first so that if we get back here somehow + // during the object deletion (e.g. wxYield called from its dtor) we + // wouldn't try to delete it the second time + if ( wxPendingDelete.Member(obj) ) wxPendingDelete.Erase(node); + delete obj; + // Deleting one object may have deleted other pending // objects, so start from beginning of list again. node = wxPendingDelete.GetFirst();