You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Keyboard Input modifiers do not block actions.
This means, if you press "F" while holding "shift" and there is and action registered for "F" that action should be pressed. This commit restore this behaviour, lost when implementing is_action_just_pressed. If you want "blocking modifiers" you should code it via script. Fixes 6826
This commit is contained in:
@@ -381,15 +381,12 @@ void InputDefault::parse_input_event(const InputEvent& p_event) {
|
||||
if (!p_event.is_echo()) {
|
||||
for (const Map<StringName,InputMap::Action>::Element *E=InputMap::get_singleton()->get_action_map().front();E;E=E->next()) {
|
||||
|
||||
if (InputMap::get_singleton()->event_is_action(p_event,E->key())) {
|
||||
|
||||
if(is_action_pressed(E->key()) != p_event.is_pressed()) {
|
||||
Action action;
|
||||
action.fixed_frame=Engine::get_singleton()->get_fixed_frames();
|
||||
action.idle_frame=Engine::get_singleton()->get_idle_frames();
|
||||
action.pressed=p_event.is_pressed();
|
||||
action_state[E->key()]=action;
|
||||
}
|
||||
if (InputMap::get_singleton()->event_is_action(p_event,E->key()) && is_action_pressed(E->key()) != p_event.is_pressed()) {
|
||||
Action action;
|
||||
action.fixed_frame=Engine::get_singleton()->get_fixed_frames();
|
||||
action.idle_frame=Engine::get_singleton()->get_idle_frames();
|
||||
action.pressed=p_event.is_pressed();
|
||||
action_state[E->key()]=action;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user