diff --git a/src/input/device_manager.cpp b/src/input/device_manager.cpp index 0e82bfbaf..eb5f77d06 100644 --- a/src/input/device_manager.cpp +++ b/src/input/device_manager.cpp @@ -388,8 +388,11 @@ InputDevice *DeviceManager::mapGamepadInput(Input::InputType type, if (gPad != NULL) { - // Ignore deadzone events if this isn't the latest used device - if (m_latest_used_device != gPad && *value > -250 && *value < 250 /* TODO: use deadzone config */) + // Ignore deadzone events if this isn't the latest used device in + // single-player mode (allowing the player to switch device at any time) + int dz = static_cast(gPad->getConfiguration())->getDeadzone(); + if (m_single_player != NULL && m_latest_used_device != gPad + && *value > -dz && *value < dz) { *player = NULL; return NULL;