summaryrefslogtreecommitdiff
path: root/scene/main/scene_main_loop.cpp
diff options
context:
space:
mode:
authorSaggi Mizrahi <saggi@mizrahi.cc>2017-03-16 18:52:50 +0200
committerSaggi Mizrahi <saggi@mizrahi.cc>2017-03-31 17:56:32 +0300
commit245ace6e2e8c81909bbeae3e6f191932ab24815b (patch)
treed8b395a3b675e299fc0edfdd9947f0aa17717738 /scene/main/scene_main_loop.cpp
parent92b6c8095acc8348da7657dde357202840c26382 (diff)
Add the option to check if input was handled
When working with a viewport you should call Viewport.input() to pass the input, but if the input was unhandled you might also want to call Viewport.unhandled_input() so that objects in the sub-scene can handle the event. This adds a way to check if the input was handled so that you know whether you should call Viewport.unhandled_input() or not. Signed-off-by: Saggi Mizrahi <saggi@mizrahi.cc>
Diffstat (limited to 'scene/main/scene_main_loop.cpp')
-rw-r--r--scene/main/scene_main_loop.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/scene/main/scene_main_loop.cpp b/scene/main/scene_main_loop.cpp
index 79ee4a6f75..8eb09908ad 100644
--- a/scene/main/scene_main_loop.cpp
+++ b/scene/main/scene_main_loop.cpp
@@ -374,6 +374,10 @@ void SceneTree::input_text(const String &p_text) {
root_lock--;
}
+bool SceneTree::is_input_handled() {
+ return input_handled;
+}
+
void SceneTree::input_event(const InputEvent &p_event) {
if (is_editor_hint() && (p_event.type == InputEvent::JOYPAD_MOTION || p_event.type == InputEvent::JOYPAD_BUTTON))
@@ -2153,6 +2157,7 @@ void SceneTree::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_pause", "enable"), &SceneTree::set_pause);
ClassDB::bind_method(D_METHOD("is_paused"), &SceneTree::is_paused);
ClassDB::bind_method(D_METHOD("set_input_as_handled"), &SceneTree::set_input_as_handled);
+ ClassDB::bind_method(D_METHOD("is_input_handled"), &SceneTree::is_input_handled);
ClassDB::bind_method(D_METHOD("create_timer:SceneTreeTimer", "time_sec", "pause_mode_process"), &SceneTree::create_timer, DEFVAL(true));