base new timer expiration time on current time, not on the previous expiration time

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2008-10-15 11:39:04 +00:00
parent 00a1c49a77
commit d45242a64a

View File

@ -172,7 +172,11 @@ void wxTimerScheduler::NotifyExpired()
}
else // reschedule the next timer expiration
{
s->m_expiration += timer->GetInterval()*1000;
// always keep the expiration time in the future, i.e. base it on
// the current time instead of just offsetting it from the current
// expiration time because it could happen that we're late and the
// current expiration time is (far) in the past
s->m_expiration = now + timer->GetInterval()*1000;
DoAddTimer(s);
}