From 6d9dd6e4882ea8ba63510ae467720ca851333605 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Fri, 21 Oct 2022 20:38:34 -0500 Subject: [PATCH] winmm: Use a global timeout for refreshing joystick devices. --- dlls/winmm/joystick.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dlls/winmm/joystick.c b/dlls/winmm/joystick.c index 52094504186..428593fa590 100644 --- a/dlls/winmm/joystick.c +++ b/dlls/winmm/joystick.c @@ -131,12 +131,12 @@ struct joystick UINT timer; DWORD threshold; BOOL changed; - ULONG last_check; }; static DIDEVICEINSTANCEW instances[16]; static struct joystick joysticks[16]; static IDirectInput8W *dinput; +static ULONG last_check; static BOOL CALLBACK enum_instances( const DIDEVICEINSTANCEW *instance, void *context ) { @@ -342,9 +342,9 @@ MMRESULT WINAPI DECLSPEC_HOTPATCH joyGetDevCapsW( UINT_PTR id, JOYCAPSW *caps, U EnterCriticalSection( &joystick_cs ); - if (!(device = joysticks[id].device) && (ticks - joysticks[id].last_check) >= 2000) + if (!(device = joysticks[id].device) && (ticks - last_check) >= 2000) { - joysticks[id].last_check = ticks; + last_check = ticks; find_joysticks(); } @@ -477,9 +477,9 @@ MMRESULT WINAPI DECLSPEC_HOTPATCH joyGetPosEx( UINT id, JOYINFOEX *info ) EnterCriticalSection( &joystick_cs ); - if (!(device = joysticks[id].device) && (ticks - joysticks[id].last_check) >= 2000) + if (!(device = joysticks[id].device) && (ticks - last_check) >= 2000) { - joysticks[id].last_check = ticks; + last_check = ticks; find_joysticks(); }