From: Václav Slavík Date: Thu, 22 Dec 2005 23:04:05 +0000 (+0000) Subject: wxMac linking fix X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/48e5284db6d6f1dab46a81a4ae0d0438ea37bd6e wxMac linking fix git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36530 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/appcmn.cpp b/src/common/appcmn.cpp index 1e30f70f15..cae7033056 100644 --- a/src/common/appcmn.cpp +++ b/src/common/appcmn.cpp @@ -42,6 +42,7 @@ #include "wx/thread.h" #include "wx/utils.h" #include "wx/ptr_scpd.h" +#include "wx/evtloop.h" #if defined(__WXMSW__) #include "wx/msw/private.h" // includes windows.h for LOGFONT @@ -61,7 +62,9 @@ WX_CHECK_BUILD_OPTIONS("wxCore") // ---------------------------------------------------------------------------- // this defines wxEventLoopPtr +#if wxUSE_EVTLOOP_IN_APP wxDEFINE_TIED_SCOPED_PTR_TYPE(wxEventLoop) +#endif // ============================================================================ // wxAppBase implementation @@ -463,6 +466,39 @@ void wxAppBase::OnIdle(wxIdleEvent& WXUNUSED(event)) } +// ---------------------------------------------------------------------------- +// exception handling +// ---------------------------------------------------------------------------- + +#if wxUSE_EXCEPTIONS + +void wxAppBase::HandleEvent(wxEvtHandler *handler, + wxEventFunction func, + wxEvent& event) const +{ + // by default, call wxApp::OnExceptionInMainLoop if an exception occurs + try + { + handler->DoHandleEvent(func, event); + } + catch ( ... ) + { + if ( !wxConstCast(this, wxAppBase)->OnExceptionInMainLoop() ) + { +#if wxUSE_EVTLOOP_IN_APP + wxEventLoop *loop = wxEventLoop::GetActive(); + if ( loop ) + loop->Exit(-1); +#else + wxConstCast(this, wxAppBase)->ExitMainLoop(); +#endif + } + //else: continue running the event loop + } +} + +#endif // wxUSE_EXCEPTIONS + // ---------------------------------------------------------------------------- // wxGUIAppTraitsBase // ----------------------------------------------------------------------------