[PATCH] dinput: Limit axes while remaping broken devices (try 2)
Bruno Jesus
bjesus at codeweavers.com
Tue Jun 13 08:53:42 CDT 2017
try 2:
Don't change old code, touch only the broken devices code.
Superseeds 134803.
Fixes https://bugs.winehq.org/show_bug.cgi?id=43120
Signed-off-by: Bruno Jesus <bjesus at codeweavers.com>
---
dlls/dinput/joystick_linux.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/dinput/joystick_linux.c b/dlls/dinput/joystick_linux.c
index 1032659621..963e62f017 100644
--- a/dlls/dinput/joystick_linux.c
+++ b/dlls/dinput/joystick_linux.c
@@ -253,10 +253,14 @@ static INT find_joystick_devices(void)
/* If no axes were configured but there are axes assume a 1-to-1 (wii controller) */
if (joydev.axis_count && !found_axes)
{
+ int axes_limit = min(joydev.axis_count, 8); /* generic driver limit */
+
ERR("Incoherent joystick data, advertised %d axes, detected 0. Assuming 1-to-1.\n",
- joydev.axis_count);
- for (j = 0; j < joydev.axis_count; j++)
+ joydev.axis_count);
+ for (j = 0; j < axes_limit; j++)
joydev.dev_axes_map[j] = j;
+
+ joydev.axis_count = axes_limit;
}
}
--
2.11.0
More information about the wine-patches
mailing list