Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 11th, 2012  |  syntax: None  |  size: 2.08 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. From 1906516e86ba239a0dd7ec28d0f7119181efeb6e Mon Sep 17 00:00:00 2001
  2. From: Lucas Fialho Zawacki <lfzawacki@gmail.com>
  3. Date: Fri, 29 Jul 2011 16:36:31 -0300
  4. Subject: dinput: In BuildActionMap, don't assign objects to actions mapped by an user
  5.  
  6. ---
  7.  dlls/dinput/joystick.c |    2 ++
  8.  dlls/dinput/keyboard.c |    2 ++
  9.  dlls/dinput/mouse.c    |    2 ++
  10.  3 files changed, 6 insertions(+), 0 deletions(-)
  11.  
  12. diff --git a/dlls/dinput/joystick.c b/dlls/dinput/joystick.c
  13. index 2d8a818..e3babc6 100644
  14. --- a/dlls/dinput/joystick.c
  15. +++ b/dlls/dinput/joystick.c
  16. @@ -445,6 +445,8 @@ HRESULT WINAPI JoystickWGenericImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W iface,
  17.          DWORD type = 0x000000ff & (lpdiaf->rgoAction[i].dwSemantic >> 8);
  18.          DWORD genre = 0xff000000 & lpdiaf->rgoAction[i].dwSemantic;
  19.  
  20. +        if (lpdiaf->rgoAction[i].dwHow == DIAH_USERCONFIG) continue;
  21. +
  22.          /* Only consider actions of the right genre */
  23.          if (lpdiaf->dwGenre != genre && genre != DIGENRE_ANY) continue;
  24.  
  25. diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c
  26. index 3c93bcd..4354a68 100644
  27. --- a/dlls/dinput/keyboard.c
  28. +++ b/dlls/dinput/keyboard.c
  29. @@ -536,6 +536,8 @@ static HRESULT WINAPI SysKeyboardWImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W ifac
  30.  
  31.      for (i=0; i < lpdiaf->dwNumActions; i++)
  32.      {
  33. +        if (lpdiaf->rgoAction[i].dwHow == DIAH_USERCONFIG) continue;
  34. +
  35.          if ((lpdiaf->rgoAction[i].dwSemantic & DIKEYBOARD_MASK) == DIKEYBOARD_MASK)
  36.          {
  37.              DWORD obj_id = semantic_to_obj_id(&This->base, lpdiaf->rgoAction[i].dwSemantic);
  38. diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c
  39. index 8da35f4..fe4faef 100644
  40. --- a/dlls/dinput/mouse.c
  41. +++ b/dlls/dinput/mouse.c
  42. @@ -783,6 +783,8 @@ static HRESULT WINAPI SysMouseWImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W iface,
  43.  
  44.      for (i=0; i < lpdiaf->dwNumActions; i++)
  45.      {
  46. +        if (lpdiaf->rgoAction[i].dwHow == DIAH_USERCONFIG) continue;
  47. +
  48.          if ((lpdiaf->rgoAction[i].dwSemantic & DIMOUSE_MASK) == DIMOUSE_MASK)
  49.          {
  50.              DWORD obj_id = semantic_to_obj_id(&This->base, lpdiaf->rgoAction[i].dwSemantic);
  51. --
  52. 1.7.0.4