diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2019-09-03 18:35:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-03 18:35:20 +0200 |
commit | 750f8d4926edb14269d9f6a117c5a9fd4765373a (patch) | |
tree | c813e0fb3d62ae67be4d8a3b091b68fc00a59344 | |
parent | 86c930998bc5620edb04df492117aa6f5e410a2e (diff) | |
parent | 5e337b31ebcf4509e1cf4cb64b02908ade59df05 (diff) |
Merge pull request #31844 from 2shady4u/TweenInSceneTree
Timer and Tween check if they are in SceneTree when starting
-rw-r--r-- | scene/animation/tween.cpp | 4 | ||||
-rw-r--r-- | scene/gui/control.cpp | 4 | ||||
-rwxr-xr-x | scene/main/timer.cpp | 3 |
3 files changed, 7 insertions, 4 deletions
diff --git a/scene/animation/tween.cpp b/scene/animation/tween.cpp index 2609924f33..0f7d4466c8 100644 --- a/scene/animation/tween.cpp +++ b/scene/animation/tween.cpp @@ -783,10 +783,12 @@ float Tween::get_speed_scale() const { } bool Tween::start() { + + ERR_FAIL_COND_V_MSG(!is_inside_tree(), false, "Tween was not added to the SceneTree!"); + // Are there any pending updates? if (pending_update != 0) { // Start the tweens after deferring - call_deferred("start"); return true; } diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index 034e9266f6..174c2fce7d 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -2149,9 +2149,7 @@ bool Control::has_focus() const { void Control::grab_focus() { - if (!is_inside_tree()) { - ERR_FAIL_COND(!is_inside_tree()); - } + ERR_FAIL_COND(!is_inside_tree()); if (data.focus_mode == FOCUS_NONE) { WARN_PRINT("This control can't grab focus. Use set_focus_mode() to allow a control to get focus."); diff --git a/scene/main/timer.cpp b/scene/main/timer.cpp index 03d46fd28d..14cc705edb 100755 --- a/scene/main/timer.cpp +++ b/scene/main/timer.cpp @@ -107,6 +107,9 @@ bool Timer::has_autostart() const { } void Timer::start(float p_time) { + + ERR_FAIL_COND_MSG(!is_inside_tree(), "Timer was not added to the SceneTree!"); + if (p_time > 0) { set_wait_time(p_time); } |