From: Mattia Barbon Date: Thu, 3 Jul 2003 16:05:23 +0000 (+0200) Subject: Win32: fix WM_TIMER handling X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=26549e08076777b5bf661c544db9ec681644f68e;p=p5sagit%2Fp5-mst-13.2.git Win32: fix WM_TIMER handling Message-ID: p4raw-id: //depot/perl@19965 --- diff --git a/win32/win32.c b/win32/win32.c index 083e98e..c41c36d 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -1884,10 +1884,12 @@ win32_async_check(pTHX) case WM_TIMER: { /* alarm() is a one-shot but SetTimer() repeats so kill it */ - if (w32_timerid) { + if (w32_timerid && w32_timerid==msg.wParam) { KillTimer(NULL,w32_timerid); w32_timerid=0; } + else + goto FallThrough; /* Now fake a call to signal handler */ if (do_raise(aTHX_ 14)) { sig_terminate(aTHX_ 14); @@ -1897,6 +1899,7 @@ win32_async_check(pTHX) /* Otherwise do normal Win32 thing - in case it is useful */ default: + FallThrough: TranslateMessage(&msg); DispatchMessage(&msg); ours = 0;