From acc8600b0aaf80f19881d2254dcaff321f1f340a Mon Sep 17 00:00:00 2001 From: Themaister Date: Sat, 9 Nov 2013 11:02:41 +0100 Subject: [PATCH] Keyboard takes prio over joysticks for ANALOG. Joysticks don't have to rest at 0 so they never allow keyboard to be checked properly. --- input/dinput.c | 4 ++-- input/linuxraw_input.c | 4 ++-- input/sdl_input.c | 4 ++-- input/x11_input.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input/dinput.c b/input/dinput.c index 2cfb96be1a..9f1ade82fc 100644 --- a/input/dinput.c +++ b/input/dinput.c @@ -323,9 +323,9 @@ static int16_t dinput_input_state(void *data, return dinput_keyboard_pressed(di, id); case RETRO_DEVICE_ANALOG: - ret = input_joypad_analog(di->joypad, port, index, id, g_settings.input.binds[port]); + ret = dinput_pressed_analog(di, binds[port], index, id); if (!ret) - dinput_pressed_analog(di, binds[port], index, id); + ret = input_joypad_analog(di->joypad, port, index, id, g_settings.input.binds[port]); return ret; case RETRO_DEVICE_MOUSE: diff --git a/input/linuxraw_input.c b/input/linuxraw_input.c index aea1cf3bf1..dac339062e 100644 --- a/input/linuxraw_input.c +++ b/input/linuxraw_input.c @@ -287,9 +287,9 @@ static int16_t linuxraw_input_state(void *data, const struct retro_keybind **bin input_joypad_pressed(linuxraw->joypad, port, binds[port], id); case RETRO_DEVICE_ANALOG: - ret = input_joypad_analog(linuxraw->joypad, port, index, id, binds[port]); + ret = linuxraw_analog_pressed(linuxraw, binds[port], index, id); if (!ret) - ret = linuxraw_analog_pressed(linuxraw, binds[port], index, id); + ret = input_joypad_analog(linuxraw->joypad, port, index, id, binds[port]); return ret; default: diff --git a/input/sdl_input.c b/input/sdl_input.c index c20d8bc52c..e3941f0ca3 100644 --- a/input/sdl_input.c +++ b/input/sdl_input.c @@ -101,9 +101,9 @@ static int16_t sdl_joypad_device_state(sdl_input_t *sdl, const struct retro_keyb static int16_t sdl_analog_device_state(sdl_input_t *sdl, const struct retro_keybind **binds, unsigned port_num, unsigned index, unsigned id) { - int16_t ret = input_joypad_analog(sdl->joypad, port_num, index, id, binds[port_num]); + int16_t ret = sdl_analog_pressed(sdl, binds[port_num], index, id); if (!ret) - ret = sdl_analog_pressed(sdl, binds[port_num], index, id); + ret = input_joypad_analog(sdl->joypad, port_num, index, id, binds[port_num]); return ret; } diff --git a/input/x11_input.c b/input/x11_input.c index acf35afa6f..98e867f0fa 100644 --- a/input/x11_input.c +++ b/input/x11_input.c @@ -194,9 +194,9 @@ static int16_t x_input_state(void *data, const struct retro_keybind **binds, uns return x_key_pressed(x11, id); case RETRO_DEVICE_ANALOG: - ret = input_joypad_analog(x11->joypad, port, index, id, binds[port]); + ret = x_pressed_analog(x11, binds[port], index, id); if (!ret) - ret = x_pressed_analog(x11, binds[port], index, id); + ret = input_joypad_analog(x11->joypad, port, index, id, binds[port]); return ret; case RETRO_DEVICE_MOUSE: