Module: wine Branch: master Commit: 5d51d8a25efcfd73687f5f59e817ee92824ca4ea URL: https://source.winehq.org/git/wine.git/?a=commit;h=5d51d8a25efcfd73687f5f59e...
Author: Tim Schumacher timschumi@gmx.de Date: Sat Jun 1 13:49:51 2019 +0200
dinput/linuxinput: Remap wheel axes to X, Y, and Z.
Signed-off-by: Tim Schumacher timschumi@gmx.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dinput/joystick_linuxinput.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/dinput/joystick_linuxinput.c b/dlls/dinput/joystick_linuxinput.c index 8d80b34..fdfbc7f 100644 --- a/dlls/dinput/joystick_linuxinput.c +++ b/dlls/dinput/joystick_linuxinput.c @@ -502,14 +502,18 @@ static JoystickImpl *alloc_device(REFGUID rguid, IDirectInputImpl *dinput, unsig /* Count number of available axes - supported Axis & POVs */ for (i = 0; i < ABS_MAX; i++) { - if (i < WINE_JOYSTICK_MAX_AXES && + if (idx < WINE_JOYSTICK_MAX_AXES && + i < ABS_HAT0X && test_bit(newDevice->joydev->absbits, i)) { newDevice->generic.device_axis_count++; newDevice->dev_axes_to_di[i] = idx; newDevice->generic.props[idx].lDevMin = newDevice->joydev->axes[i].minimum; newDevice->generic.props[idx].lDevMax = newDevice->joydev->axes[i].maximum; - default_axis_map[idx] = i; + if (i >= 8 && i <= 10) /* If it's a wheel axis... */ + default_axis_map[idx] = i - 8; /* ... remap to X/Y/Z */ + else + default_axis_map[idx] = i; idx++; } else