X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b6ae7297d2b985a6295fac476bb9d7e74140452a..e8481866872d3eec6e0ce1fa7eab856abff26c34:/src/msw/timer.cpp diff --git a/src/msw/timer.cpp b/src/msw/timer.cpp index 5f31b15104..ba7ed1cd9c 100644 --- a/src/msw/timer.cpp +++ b/src/msw/timer.cpp @@ -4,7 +4,6 @@ // Author: Julian Smart // Modified by: Vadim Zeitlin (use hash map instead of list, global rewrite) // Created: 04/01/98 -// RCS-ID: $Id$ // Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -31,6 +30,7 @@ #endif #include "wx/msw/private.h" +#include "wx/msw/private/hiddenwin.h" // ---------------------------------------------------------------------------- // private globals @@ -76,11 +76,6 @@ UINT_PTR GetNewTimerId(wxMSWTimerImpl *t) LRESULT APIENTRY _EXPORT wxTimerWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); -// implemented in utils.cpp -extern "C" WXDLLIMPEXP_BASE HWND -wxCreateHiddenWindow(LPCTSTR *pclassname, LPCTSTR classname, WNDPROC wndproc); - - // ---------------------------------------------------------------------------- // wxTimerHiddenWindowModule: used to manage the hidden window used for // catching timer messages (we need a module to ensure that the window is @@ -173,15 +168,17 @@ LRESULT APIENTRY _EXPORT wxTimerWndProc(HWND hWnd, UINT message, { wxTimerMap::iterator node = TimerMap().find(wParam); - wxCHECK_MSG( node != TimerMap().end(), 0, wxT("bogus timer id in wxTimerProc") ); + if ( node != TimerMap().end() ) + { + wxProcessTimer(*(node->second)); - wxProcessTimer(*(node->second)); - } - else - { - return ::DefWindowProc(hWnd, message, wParam, lParam); + return 0; + } + //else: Unknown timer, probably one of our timers that had fired just + // before being removed from the timers map by Stop(). } - return 0; + + return ::DefWindowProc(hWnd, message, wParam, lParam); } // ----------------------------------------------------------------------------