Commit 31876695 authored by Vitaliy Margolen's avatar Vitaliy Margolen Committed by Alexandre Julliard

dinput: Skip old mouse movement events.

parent f461a8d4
...@@ -64,6 +64,7 @@ struct SysMouseImpl ...@@ -64,6 +64,7 @@ struct SysMouseImpl
BOOL need_warp; BOOL need_warp;
DWORD last_warped; DWORD last_warped;
DWORD last_event_time;
/* This is for mouse reporting. */ /* This is for mouse reporting. */
DIMOUSESTATE2 m_state; DIMOUSESTATE2 m_state;
}; };
...@@ -280,6 +281,9 @@ static void dinput_mouse_hook( LPDIRECTINPUTDEVICE8A iface, WPARAM wparam, LPARA ...@@ -280,6 +281,9 @@ static void dinput_mouse_hook( LPDIRECTINPUTDEVICE8A iface, WPARAM wparam, LPARA
{ {
POINT pt, pt1; POINT pt, pt1;
/* Skip old movement events */
if (This->last_event_time - hook->time < 2000) break;
GetCursorPos(&pt); GetCursorPos(&pt);
This->m_state.lX += pt.x = hook->pt.x - pt.x; This->m_state.lX += pt.x = hook->pt.x - pt.x;
This->m_state.lY += pt.y = hook->pt.y - pt.y; 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 ...@@ -355,6 +359,8 @@ static void dinput_mouse_hook( LPDIRECTINPUTDEVICE8A iface, WPARAM wparam, LPARA
wdata, hook->time, This->base.dinput->evsequence++); wdata, hook->time, This->base.dinput->evsequence++);
} }
This->last_event_time = hook->time;
LeaveCriticalSection(&This->base.crit); LeaveCriticalSection(&This->base.crit);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment