summaryrefslogtreecommitdiff
path: root/vcl/win/source/app/saltimer.cxx
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2006-05-03 15:38:20 +0000
committerRüdiger Timm <rt@openoffice.org>2006-05-03 15:38:20 +0000
commit31cff9780d5658fe6b3cd24835ab0038287c0810 (patch)
treed12fbed9a37d4449098282333e1273ecc647e8e3 /vcl/win/source/app/saltimer.cxx
parentc7d8e1f1d7f00a264e3818233dd09190deb370c3 (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.cxx12
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();