From 31876695120f2fe6b4ecf60d73c36472607e5bf2 Mon Sep 17 00:00:00 2001 From: Vitaliy Margolen Date: Fri, 8 Feb 2008 08:01:42 -0700 Subject: [PATCH] dinput: Skip old mouse movement events. --- dlls/dinput/mouse.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c index 35ddc0bc94e..72fbbf68a0b 100644 --- a/dlls/dinput/mouse.c +++ b/dlls/dinput/mouse.c @@ -64,6 +64,7 @@ struct SysMouseImpl BOOL need_warp; DWORD last_warped; + DWORD last_event_time; /* This is for mouse reporting. */ DIMOUSESTATE2 m_state; }; @@ -280,6 +281,9 @@ static void dinput_mouse_hook( LPDIRECTINPUTDEVICE8A iface, WPARAM wparam, LPARA { POINT pt, pt1; + /* Skip old movement events */ + if (This->last_event_time - hook->time < 2000) break; + GetCursorPos(&pt); This->m_state.lX += pt.x = hook->pt.x - pt.x; This->m_state.lY += pt.y = hook->pt.y - pt.y; @@ -355,6 +359,8 @@ static void dinput_mouse_hook( LPDIRECTINPUTDEVICE8A iface, WPARAM wparam, LPARA wdata, hook->time, This->base.dinput->evsequence++); } + This->last_event_time = hook->time; + LeaveCriticalSection(&This->base.crit); } -- 2.11.4.GIT