X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c2ca375c5620209d77a88d2d378bdcdedbc82e7e..0c1cc9483ecba053bc9a0983a4a8d48898e334f2:/src/unix/timerunx.cpp diff --git a/src/unix/timerunx.cpp b/src/unix/timerunx.cpp index 12dc0bdf27..158736fcb3 100644 --- a/src/unix/timerunx.cpp +++ b/src/unix/timerunx.cpp @@ -18,6 +18,8 @@ #include "wx/wxprec.h" +#if wxUSE_TIMER + #ifndef WX_PRECOMP #include "wx/log.h" #include "wx/module.h" @@ -27,6 +29,7 @@ #include "wx/event.h" #endif +#include "wx/apptrait.h" #include "wx/longlong.h" #include @@ -35,7 +38,7 @@ #include "wx/unix/private/timer.h" #include "wx/listimpl.cpp" -WX_DEFINE_LIST(wxTimerList); +WX_DEFINE_LIST(wxTimerList) // trace mask for the debugging messages used here #define wxTrace_Timer wxT("timer") @@ -159,6 +162,11 @@ void wxTimerScheduler::NotifyExpired() wxUnixTimerImpl * const timer = s->m_timer; if ( timer->IsOneShot() ) { + // the timer needs to be stopped but don't call its Stop() from + // here as it would attempt to remove the timer from our list and + // we had already done it, so we just need to reset its state + timer->MarkStopped(); + // don't need it any more delete s; } @@ -249,3 +257,10 @@ wxUsecClock_t wxGetLocalTimeUsec() return wxGetLocalTimeMillis() * 1000L; } +wxTimerImpl *wxConsoleAppTraits::CreateTimerImpl(wxTimer *timer) +{ + return new wxUnixTimerImpl(timer); +} + +#endif // wxUSE_TIMER +