From 9100db7b941348854dafad7860a4e466dba31ae6 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Wed, 25 Jan 2017 20:37:39 +0100 Subject: 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 --- main/input_default.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'main/input_default.cpp') diff --git a/main/input_default.cpp b/main/input_default.cpp index 82dec8606..0561f2bb3 100644 --- a/main/input_default.cpp +++ b/main/input_default.cpp @@ -381,15 +381,12 @@ void InputDefault::parse_input_event(const InputEvent& p_event) { if (!p_event.is_echo()) { for (const Map::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; } } } -- cgit v1.2.3-70-g09d2