Browse Source

InputEvent: Restore old behaviour for matching key events to actions.

Original code in 9100db7
Andreas Haas 8 years ago
parent
commit
c218390864
1 changed files with 4 additions and 1 deletions
  1. 4 1
      core/os/input_event.cpp

+ 4 - 1
core/os/input_event.cpp

@@ -282,7 +282,10 @@ bool InputEventKey::action_match(const Ref<InputEvent> &p_event) const {
 	if (key.is_null())
 		return false;
 
-	return get_scancode_with_modifiers() == key->get_scancode_with_modifiers();
+	uint32_t code = get_scancode_with_modifiers();
+	uint32_t event_code = key->get_scancode_with_modifiers();
+
+	return get_scancode() == key->get_scancode() && (!key->is_pressed() || (code & event_code) == code);
 }
 
 void InputEventKey::_bind_methods() {