diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml index 5c311847b7dd..f2ecb8d06d3d 100644 --- a/doc/classes/Node.xml +++ b/doc/classes/Node.xml @@ -764,12 +764,14 @@ Emitted when a child node enters the scene tree, either because it entered on its own or because this node entered with it. + This signal is emitted [i]after[/i] the child node's own [constant NOTIFICATION_ENTER_TREE] and [signal tree_entered]. - + - Emitted when a child node exits the scene tree, either because it exited on its own or because this node exited. + Emitted when a child node is about to exit the scene tree, either because it is being removed or freed directly, or because this node is exiting the tree. + When this signal is received, the child [code]node[/code] is still in the tree and valid. This signal is emitted [i]after[/i] the child node's own [signal tree_exiting] and [constant NOTIFICATION_EXIT_TREE]. @@ -785,6 +787,7 @@ Emitted when the node enters the tree. + This signal is emitted [i]after[/i] the related [constant NOTIFICATION_ENTER_TREE] notification. @@ -795,15 +798,18 @@ Emitted when the node is still active but about to exit the tree. This is the right place for de-initialization (or a "destructor", if you will). + This signal is emitted [i]before[/i] the related [constant NOTIFICATION_EXIT_TREE] notification. Notification received when the node enters a [SceneTree]. + This notification is emitted [i]before[/i] the related [signal tree_entered]. Notification received when the node is about to exit a [SceneTree]. + This notification is emitted [i]after[/i] the related [signal tree_exiting]. Notification received when the node is moved in the parent. diff --git a/scene/main/node.cpp b/scene/main/node.cpp index f6f738d602a3..4e9a33ba8411 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -371,7 +371,7 @@ void Node::_propagate_exit_tree() { if (data.parent) { Variant c = this; const Variant *cptr = &c; - data.parent->emit_signal(SceneStringNames::get_singleton()->child_exited_tree, &cptr, 1); + data.parent->emit_signal(SceneStringNames::get_singleton()->child_exiting_tree, &cptr, 1); } // exit groups @@ -3149,7 +3149,7 @@ void Node::_bind_methods() { ADD_SIGNAL(MethodInfo("tree_exiting")); ADD_SIGNAL(MethodInfo("tree_exited")); ADD_SIGNAL(MethodInfo("child_entered_tree", PropertyInfo(Variant::OBJECT, "node", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT, "Node"))); - ADD_SIGNAL(MethodInfo("child_exited_tree", PropertyInfo(Variant::OBJECT, "node", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT, "Node"))); + ADD_SIGNAL(MethodInfo("child_exiting_tree", PropertyInfo(Variant::OBJECT, "node", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT, "Node"))); ADD_PROPERTY(PropertyInfo(Variant::INT, "pause_mode", PROPERTY_HINT_ENUM, "Inherit,Stop,Process"), "set_pause_mode", "get_pause_mode"); diff --git a/scene/scene_string_names.cpp b/scene/scene_string_names.cpp index 6fd20073f555..c009cb296548 100644 --- a/scene/scene_string_names.cpp +++ b/scene/scene_string_names.cpp @@ -52,7 +52,7 @@ SceneStringNames::SceneStringNames() { tree_exited = StaticCString::create("tree_exited"); ready = StaticCString::create("ready"); child_entered_tree = StaticCString::create("child_entered_tree"); - child_exited_tree = StaticCString::create("child_exited_tree"); + child_exiting_tree = StaticCString::create("child_exiting_tree"); item_rect_changed = StaticCString::create("item_rect_changed"); size_flags_changed = StaticCString::create("size_flags_changed"); minimum_size_changed = StaticCString::create("minimum_size_changed"); diff --git a/scene/scene_string_names.h b/scene/scene_string_names.h index 05868b5ba58a..99959f21b1ae 100644 --- a/scene/scene_string_names.h +++ b/scene/scene_string_names.h @@ -72,7 +72,7 @@ class SceneStringNames { StringName tree_exited; StringName ready; StringName child_entered_tree; - StringName child_exited_tree; + StringName child_exiting_tree; StringName size_flags_changed; StringName minimum_size_changed; StringName sleeping_state_changed;