[8/8] dinput: In BuildActionMap, don't assign objects to actions mapped by an user

Lucas Fialho Zawacki lfzawacki at gmail.com
Wed Aug 3 18:52:34 CDT 2011


---
 dlls/dinput/joystick.c |    2 ++
 dlls/dinput/keyboard.c |    2 ++
 dlls/dinput/mouse.c    |    2 ++
 3 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/dlls/dinput/joystick.c b/dlls/dinput/joystick.c
index 2d8a818..e3babc6 100644
--- a/dlls/dinput/joystick.c
+++ b/dlls/dinput/joystick.c
@@ -445,6 +445,8 @@ HRESULT WINAPI JoystickWGenericImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W iface,
         DWORD type = 0x000000ff & (lpdiaf->rgoAction[i].dwSemantic >> 8);
         DWORD genre = 0xff000000 & lpdiaf->rgoAction[i].dwSemantic;
 
+        if (lpdiaf->rgoAction[i].dwHow == DIAH_USERCONFIG) continue;
+
         /* Only consider actions of the right genre */
         if (lpdiaf->dwGenre != genre && genre != DIGENRE_ANY) continue;
 
diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c
index 3c93bcd..4354a68 100644
--- a/dlls/dinput/keyboard.c
+++ b/dlls/dinput/keyboard.c
@@ -536,6 +536,8 @@ static HRESULT WINAPI SysKeyboardWImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W ifac
 
     for (i=0; i < lpdiaf->dwNumActions; i++)
     {
+        if (lpdiaf->rgoAction[i].dwHow == DIAH_USERCONFIG) continue;
+
         if ((lpdiaf->rgoAction[i].dwSemantic & DIKEYBOARD_MASK) == DIKEYBOARD_MASK)
         {
             DWORD obj_id = semantic_to_obj_id(&This->base, lpdiaf->rgoAction[i].dwSemantic);
diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c
index 8da35f4..fe4faef 100644
--- a/dlls/dinput/mouse.c
+++ b/dlls/dinput/mouse.c
@@ -783,6 +783,8 @@ static HRESULT WINAPI SysMouseWImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W iface,
 
     for (i=0; i < lpdiaf->dwNumActions; i++)
     {
+        if (lpdiaf->rgoAction[i].dwHow == DIAH_USERCONFIG) continue;
+
         if ((lpdiaf->rgoAction[i].dwSemantic & DIMOUSE_MASK) == DIMOUSE_MASK)
         {
             DWORD obj_id = semantic_to_obj_id(&This->base, lpdiaf->rgoAction[i].dwSemantic);
-- 
1.7.0.4



More information about the wine-patches mailing list