From 55e1fec7c3b041de21d08571cd3d3b22328bcc0c Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Mon, 7 Mar 2011 11:07:15 +0100 Subject: [PATCH] user32: Set the last mouse event timestamp before calling the low-level hook. --- dlls/user32/input.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dlls/user32/input.c b/dlls/user32/input.c index 056dd686f38..06553a45d20 100644 --- a/dlls/user32/input.c +++ b/dlls/user32/input.c @@ -124,9 +124,11 @@ BOOL set_capture_window( HWND hwnd, UINT gui_flags, HWND *prev_ret ) */ BOOL CDECL __wine_send_input( HWND hwnd, const INPUT *input ) { - NTSTATUS status = send_hardware_message( hwnd, input, 0 ); + NTSTATUS status; + + if (input->type == INPUT_MOUSE) last_mouse_event = GetTickCount(); + status = send_hardware_message( hwnd, input, 0 ); if (status) SetLastError( RtlNtStatusToDosError(status) ); - else if (input->type == INPUT_MOUSE) last_mouse_event = GetTickCount(); return !status; } @@ -181,11 +183,10 @@ UINT WINAPI SendInput( UINT count, LPINPUT inputs, int size ) { /* we need to update the coordinates to what the server expects */ INPUT input = inputs[i]; + last_mouse_event = GetTickCount(); update_mouse_coords( &input ); if (!(status = send_hardware_message( 0, &input, SEND_HWMSG_INJECTED ))) { - last_mouse_event = GetTickCount(); - if ((input.u.mi.dwFlags & MOUSEEVENTF_MOVE) && ((input.u.mi.dwFlags & MOUSEEVENTF_ABSOLUTE) || input.u.mi.dx || input.u.mi.dy)) {