diff --git a/core/input_map.cpp b/core/input_map.cpp index ec833659f49..ed91edb387a 100644 --- a/core/input_map.cpp +++ b/core/input_map.cpp @@ -30,6 +30,7 @@ #include "input_map.h" +#include "core/os/input.h" #include "core/os/keyboard.h" #include "core/project_settings.h" @@ -153,8 +154,12 @@ void InputMap::action_erase_event(const StringName &p_action, const Ref >::Element *E = _find_event(input_map[p_action], p_event); - if (E) + if (E) { input_map[p_action].inputs.erase(E); + if (Input::get_singleton()->is_action_pressed(p_action)) { + Input::get_singleton()->action_release(p_action); + } + } } void InputMap::action_erase_events(const StringName &p_action) {