From a69e449782214c6108303af782c8aa321e5b11ea Mon Sep 17 00:00:00 2001 From: Andreas Haas Date: Sun, 19 Mar 2017 09:20:20 +0100 Subject: 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. --- core/os/input.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'core/os/input.cpp') diff --git a/core/os/input.cpp b/core/os/input.cpp index 63efbe4d11..22ca94d449 100644 --- a/core/os/input.cpp +++ b/core/os/input.cpp @@ -83,6 +83,7 @@ void Input::_bind_methods() { ClassDB::bind_method(D_METHOD("action_press", "action"), &Input::action_press); ClassDB::bind_method(D_METHOD("action_release", "action"), &Input::action_release); ClassDB::bind_method(D_METHOD("set_custom_mouse_cursor", "image:Texture", "hotspot"), &Input::set_custom_mouse_cursor, DEFVAL(Vector2())); + ClassDB::bind_method(D_METHOD("parse_input_event", "event"), &Input::parse_input_event); BIND_CONSTANT(MOUSE_MODE_VISIBLE); BIND_CONSTANT(MOUSE_MODE_HIDDEN); -- cgit v1.2.3