winex11drv: Return cached cursor_pos in GetCursorPos().

Vitaliy Margolen wine-patches at kievinfo.com
Wed Dec 13 19:27:49 CST 2006


Change Log:
  Return cached cursor_pos in GetCursorPos().
  Use "last_time_updated" to revert to old behavior or when mouse position
  hasn't been updated for some time.
  Don't change actual cursor position in SetCursorPos() if it hasn't changed.

The 2 seconds interval seems to be big, but it will be hit only once if a program
doesn't check messages.

We need change to SetCursorPos() to fix introduced timing issues with some games.
They pull cursor position with GetCursrorPos() then if cursor moved, reset it to
center with SetCursorPos(). In a sense we need to "cache" both operations here.

However windows will still send WM_MOUSEMOVE even when cursor position hasn't
changed. And some games depend on that as well to clear their mouse state.
---
 dlls/winex11.drv/mouse.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 857c7668fb492881c8a2757df9dd050fbdc80f1e.diff
Type: text/x-patch
Size: 1663 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20061213/e206992f/857c7668fb492881c8a2757df9dd050fbdc80f1e.bin


More information about the wine-patches mailing list