- From 1906516e86ba239a0dd7ec28d0f7119181efeb6e Mon Sep 17 00:00:00 2001
- From: Lucas Fialho Zawacki <lfzawacki@gmail.com>
- Date: Fri, 29 Jul 2011 16:36:31 -0300
- Subject: dinput: In BuildActionMap, don't assign objects to actions mapped by an user
- ---
- 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