diff --git a/src/frontend-common/common_host_interface.cpp b/src/frontend-common/common_host_interface.cpp index b29b205fb..73b7a87d3 100644 --- a/src/frontend-common/common_host_interface.cpp +++ b/src/frontend-common/common_host_interface.cpp @@ -461,6 +461,7 @@ void CommonHostInterface::UpdateControllerInterface() if (m_controller_interface) { + ClearInputMap(); m_controller_interface->Shutdown(); m_controller_interface.reset(); } @@ -939,15 +940,20 @@ bool CommonHostInterface::HandleHostMouseEvent(HostMouseButton button, bool pres void CommonHostInterface::UpdateInputMap(SettingsInterface& si) { - m_keyboard_input_handlers.clear(); - m_mouse_input_handlers.clear(); - if (m_controller_interface) - m_controller_interface->ClearBindings(); - + ClearInputMap(); UpdateControllerInputMap(si); UpdateHotkeyInputMap(si); } +void CommonHostInterface::ClearInputMap() +{ + m_keyboard_input_handlers.clear(); + m_mouse_input_handlers.clear(); + m_controller_vibration_motors.clear(); + if (m_controller_interface) + m_controller_interface->ClearBindings(); +} + void CommonHostInterface::AddControllerRumble(u32 controller_index, u32 num_motors, ControllerRumbleCallback callback) { ControllerRumbleState rumble; diff --git a/src/frontend-common/common_host_interface.h b/src/frontend-common/common_host_interface.h index 0c110dac5..78007c3f3 100644 --- a/src/frontend-common/common_host_interface.h +++ b/src/frontend-common/common_host_interface.h @@ -217,6 +217,7 @@ protected: bool HandleHostKeyEvent(HostKeyCode code, bool pressed); bool HandleHostMouseEvent(HostMouseButton button, bool pressed); void UpdateInputMap(SettingsInterface& si); + void ClearInputMap(); void AddControllerRumble(u32 controller_index, u32 num_motors, ControllerRumbleCallback callback); void UpdateControllerRumble();