dinput: fix mouse jitter in Halo (bug 7640)
Martin Traverse
wine at martin.wrong.nu
Fri Apr 13 23:01:18 CDT 2007
-------------- next part --------------
From 0481c4f3e10c593943a1997cb6ffab4e38520b0a Mon Sep 17 00:00:00 2001
From: Martin Traverse <wine at martin.wrong.nu>
Date: Sat, 14 Apr 2007 04:22:22 +0100
Subject: [PATCH] dinput: fix mouse jitter in Halo (bug 7640)
after bisecting, bug originates from removal of
MsgWaitForMultipleObjectsEx from SysKeyboardAImpl_Poll
in keyboard.c, commit b22ff8018aca7c365e505f1db7732f7050ae259b.
This function was later removed as a duplicate of
IDirectInputDevice2AImpl_Poll in device.c.
---
dlls/dinput/keyboard.c | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c
index a634156..7897665 100644
--- a/dlls/dinput/keyboard.c
+++ b/dlls/dinput/keyboard.c
@@ -485,6 +485,19 @@ static HRESULT WINAPI SysKeyboardWImpl_GetDeviceInfo(LPDIRECTINPUTDEVICE8W iface
return DI_OK;
}
+static HRESULT WINAPI SysKeyboardAImpl_Poll(LPDIRECTINPUTDEVICE8A iface)
+{
+ SysKeyboardImpl *This = (SysKeyboardImpl *)iface;
+
+ TRACE("(%p)\n",This);
+
+ if (!This->base.acquired) return DIERR_NOTACQUIRED;
+
+ /* required to avoid mouse jitter (2007-04-14) */
+ MsgWaitForMultipleObjectsEx(0, NULL, 0, QS_ALLINPUT, 0);
+ return DI_OK;
+}
+
static const IDirectInputDevice8AVtbl SysKeyboardAvt =
{
IDirectInputDevice2AImpl_QueryInterface,
@@ -512,7 +525,7 @@ static const IDirectInputDevice8AVtbl SysKeyboardAvt =
IDirectInputDevice2AImpl_SendForceFeedbackCommand,
IDirectInputDevice2AImpl_EnumCreatedEffectObjects,
IDirectInputDevice2AImpl_Escape,
- IDirectInputDevice2AImpl_Poll,
+ SysKeyboardAImpl_Poll,
IDirectInputDevice2AImpl_SendDeviceData,
IDirectInputDevice7AImpl_EnumEffectsInFile,
IDirectInputDevice7AImpl_WriteEffectToFile,
@@ -554,7 +567,7 @@ static const IDirectInputDevice8WVtbl SysKeyboardWvt =
XCAST(SendForceFeedbackCommand)IDirectInputDevice2AImpl_SendForceFeedbackCommand,
XCAST(EnumCreatedEffectObjects)IDirectInputDevice2AImpl_EnumCreatedEffectObjects,
XCAST(Escape)IDirectInputDevice2AImpl_Escape,
- XCAST(Poll)IDirectInputDevice2AImpl_Poll,
+ XCAST(Poll)SysKeyboardAImpl_Poll,
XCAST(SendDeviceData)IDirectInputDevice2AImpl_SendDeviceData,
IDirectInputDevice7WImpl_EnumEffectsInFile,
IDirectInputDevice7WImpl_WriteEffectToFile,
--
1.4.4.4
More information about the wine-patches
mailing list