]> git.saurik.com Git - wxWidgets.git/commitdiff
Apply new patch fixing problem of IsRunning always returning True. See #11699
authorRobin Dunn <robin@alldunn.com>
Mon, 15 Feb 2010 17:34:21 +0000 (17:34 +0000)
committerRobin Dunn <robin@alldunn.com>
Mon, 15 Feb 2010 17:34:21 +0000 (17:34 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63486 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/private/timer.h
src/msw/timer.cpp

index 0d7958a3160275aef64f8022f169620aa4e94da4..1e70cd387f59b352b90cf6e57ec6ef7d30c84da3 100644 (file)
@@ -19,8 +19,7 @@
 class WXDLLIMPEXP_BASE wxMSWTimerImpl : public wxTimerImpl
 {
 public:
-    wxMSWTimerImpl(wxTimer *timer);
-    virtual ~wxMSWTimerImpl();
+    wxMSWTimerImpl(wxTimer *timer) : wxTimerImpl(timer) { m_id = 0; };
 
     virtual bool Start(int milliseconds = -1, bool oneShot = false);
     virtual void Stop();
index 4193755d71a08b5ddfb032ac226adf277545548b..5f31b15104b3fb51c758acec118f628818e625b2 100644 (file)
@@ -118,22 +118,12 @@ IMPLEMENT_DYNAMIC_CLASS(wxTimerHiddenWindowModule, wxModule)
 // wxMSWTimerImpl class
 // ----------------------------------------------------------------------------
 
-wxMSWTimerImpl::wxMSWTimerImpl(wxTimer *timer)
-:wxTimerImpl(timer)
-{
-    m_id = GetNewTimerId(this);
-}
-
-wxMSWTimerImpl::~wxMSWTimerImpl()
-{
-    TimerMap().erase(m_id);
-}
-
 bool wxMSWTimerImpl::Start(int milliseconds, bool oneShot)
 {
     if ( !wxTimerImpl::Start(milliseconds, oneShot) )
         return false;
 
+    m_id = GetNewTimerId(this);
     // SetTimer() normally returns just idTimer but this might change in the
     // future so use its return value to be safe
     UINT_PTR ret = ::SetTimer
@@ -157,6 +147,8 @@ bool wxMSWTimerImpl::Start(int milliseconds, bool oneShot)
 void wxMSWTimerImpl::Stop()
 {
     ::KillTimer(wxTimerHiddenWindowModule::GetHWND(), m_id);
+    TimerMap().erase(m_id);
+    m_id = 0;
 }
 
 // ----------------------------------------------------------------------------