X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cf63f3d3ae66075641094ab03328403c7d6e74df..c821db16e6e7675e00a2f87c0320ef75ed8a7ce1:/src/mac/carbon/utils.cpp diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp index f8f817d58c..edf0c4a45c 100644 --- a/src/mac/carbon/utils.cpp +++ b/src/mac/carbon/utils.cpp @@ -57,8 +57,11 @@ #include #include #endif + +#include "wx/mac/private/timer.h" #endif // wxUSE_GUI +#include "wx/evtloop.h" #include "wx/mac/private.h" #if defined(__MWERKS__) && wxUSE_UNICODE @@ -378,6 +381,16 @@ wxPortId wxGUIAppTraits::GetToolkitVersion(int *verMaj, int *verMin) const return wxPORT_MAC; } +wxEventLoopBase* wxGUIAppTraits::CreateEventLoop() +{ + return new wxEventLoop; +} + +wxTimerImpl* wxGUIAppTraits::CreateTimerImpl(wxTimer *timer) +{ + return new wxCarbonTimerImpl(timer); +} + int gs_wxBusyCursorCount = 0; extern wxCursor gMacCurrentCursor; wxCursor gMacStoredActiveCursor; @@ -789,7 +802,10 @@ void wxMacControl::Dispose() wxASSERT_MSG( IsValidControlHandle(m_controlRef) , wxT("Invalid Control Handle (maybe already released) in Dispose") ); // we cannot check the ref count here anymore, as autorelease objects might delete their refs later - CFRelease(m_controlRef); + // we can have situations when being embedded, where the control gets deleted behind our back, so only + // CFRelease if we are safe + if ( IsValidControlHandle(m_controlRef) ) + CFRelease(m_controlRef); m_controlRef = NULL; }