diff --git a/input/drivers/udev_input.c b/input/drivers/udev_input.c index 624f6ff0e0..226d519e51 100644 --- a/input/drivers/udev_input.c +++ b/input/drivers/udev_input.c @@ -660,10 +660,14 @@ static int16_t udev_input_state(void *data, switch (device) { case RETRO_DEVICE_JOYPAD: - if (BIT_GET(udev_key_state, rarch_keysym_lut[binds[port][id].key])) - return true; - return input_joypad_pressed(udev->joypad, - joypad_info, port, binds[port], id); + { + int16_t ret = BIT_GET(udev_key_state, + rarch_keysym_lut[binds[port][id].key]); + if (!ret) + ret = input_joypad_pressed(udev->joypad, + joypad_info, port, binds[port], id); + return ret; + } case RETRO_DEVICE_ANALOG: if (binds[port]) {