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(); } @@ -938,14 +939,19 @@ bool CommonHostInterface::HandleHostMouseEvent(HostMouseButton button, bool pres } void CommonHostInterface::UpdateInputMap(SettingsInterface& si) +{ + 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(); - - UpdateControllerInputMap(si); - UpdateHotkeyInputMap(si); } void CommonHostInterface::AddControllerRumble(u32 controller_index, u32 num_motors, ControllerRumbleCallback callback) 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();