diff options
author | Rüdiger Timm <rt@openoffice.org> | 2006-05-03 15:38:20 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2006-05-03 15:38:20 +0000 |
commit | 31cff9780d5658fe6b3cd24835ab0038287c0810 (patch) | |
tree | d12fbed9a37d4449098282333e1273ecc647e8e3 /vcl/win/source/app/saltimer.cxx | |
parent | c7d8e1f1d7f00a264e3818233dd09190deb370c3 (diff) |
INTEGRATION: CWS vcl58 (1.8.26); FILE MERGED
2006/04/26 10:57:26 pl 1.8.26.1: #i64768# problem with timerproc recursion introduced with fix for #i60519#
Diffstat (limited to 'vcl/win/source/app/saltimer.cxx')
-rw-r--r-- | vcl/win/source/app/saltimer.cxx | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/vcl/win/source/app/saltimer.cxx b/vcl/win/source/app/saltimer.cxx index 033caf3ef619..117b23724121 100644 --- a/vcl/win/source/app/saltimer.cxx +++ b/vcl/win/source/app/saltimer.cxx @@ -4,9 +4,9 @@ * * $RCSfile: saltimer.cxx,v $ * - * $Revision: 1.8 $ + * $Revision: 1.9 $ * - * last change: $Author: vg $ $Date: 2006-04-06 15:42:33 $ + * last change: $Author: rt $ $Date: 2006-05-03 16:38:20 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -112,7 +112,7 @@ void WinSalTimer::Stop() // ----------------------------------------------------------------------- -void CALLBACK SalTimerProc( HWND, UINT, UINT, DWORD ) +void CALLBACK SalTimerProc( HWND, UINT, UINT_PTR nId, DWORD ) { __try { @@ -122,13 +122,15 @@ void CALLBACK SalTimerProc( HWND, UINT, UINT, DWORD ) // Test for MouseLeave SalTestMouseLeave(); - if ( pSVData->mpSalTimer && ! pSalData->mbInTimerProc ) + bool bRecursive = pSalData->mbInTimerProc && (nId != SALTIMERPROC_RECURSIVE); + if ( pSVData->mpSalTimer && ! bRecursive ) { // Try to aquire the mutex. If we don't get the mutex then we // try this a short time later again. if ( ImplSalYieldMutexTryToAcquire() ) { - if ( pSVData->mpSalTimer && ! pSalData->mbInTimerProc ) + bRecursive = pSalData->mbInTimerProc && (nId != SALTIMERPROC_RECURSIVE); + if ( pSVData->mpSalTimer && ! bRecursive ) { pSalData->mbInTimerProc = TRUE; pSVData->mpSalTimer->CallCallback(); |