Merge pull request #31844 from 2shady4u/TweenInSceneTree

Timer and Tween check if they are in SceneTree when starting
This commit is contained in:
Rémi Verschelde 2019-09-03 18:35:20 +02:00 committed by GitHub
commit 750f8d4926
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 4 deletions

View File

@ -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;
}

View File

@ -2149,9 +2149,7 @@ bool Control::has_focus() const {
void Control::grab_focus() {
if (!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.");

View File

@ -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);
}