Input: bind parse_input_event()

When using get_tree().input_event(ev), the engine will JUST send the event down the SceneTree.
However, you won't get any of the benefits of the Input singleton:
- No InputMap actions will be emitted
- The internal input state won't be modified, so methods like `Input.get_mouse_pos()` or `Input.is_joy_button_pressed` won't return the expected output after sending the event.

This is fixed by using `Input.parse_input_event(ev)` instead.
I guess we'll also have to update the docs to reflect that this is the preferred method of sending custom InputEvents.
This commit is contained in:
Andreas Haas
2017-03-19 08:31:34 +01:00
parent c5c546fb7f
commit 2f1a0448a7
3 changed files with 5 additions and 1 deletions

View File

@@ -81,6 +81,7 @@ void Input::_bind_methods() {
ObjectTypeDB::bind_method(_MD("action_press", "action"), &Input::action_press);
ObjectTypeDB::bind_method(_MD("action_release", "action"), &Input::action_release);
ObjectTypeDB::bind_method(_MD("set_custom_mouse_cursor", "image:Texture", "hotspot"), &Input::set_custom_mouse_cursor, DEFVAL(Vector2()));
ObjectTypeDB::bind_method(_MD("parse_input_event", "event"), &Input::parse_input_event);
BIND_CONSTANT(MOUSE_MODE_VISIBLE);
BIND_CONSTANT(MOUSE_MODE_HIDDEN);