Browse Source

some checks for node removed, may fix #20863

Juan Linietsky 7 years ago
parent
commit
0161e95f01

+ 2 - 0
editor/plugins/particles_editor_plugin.cpp

@@ -262,6 +262,7 @@ void ParticlesEditor::_notification(int p_notification) {
 
 	if (p_notification == NOTIFICATION_ENTER_TREE) {
 		options->set_icon(options->get_popup()->get_icon("Particles", "EditorIcons"));
+		get_tree()->connect("node_removed", this, "_node_removed");
 	}
 }
 
@@ -444,6 +445,7 @@ void ParticlesEditor::_bind_methods() {
 
 	ClassDB::bind_method("_menu_option", &ParticlesEditor::_menu_option);
 	ClassDB::bind_method("_generate_aabb", &ParticlesEditor::_generate_aabb);
+	ClassDB::bind_method("_node_removed", &ParticlesEditor::_node_removed);
 }
 
 ParticlesEditor::ParticlesEditor() {

+ 9 - 0
editor/plugins/skeleton_editor_plugin.cpp

@@ -126,7 +126,15 @@ PhysicalBone *SkeletonEditor::create_physical_bone(int bone_id, int bone_child_i
 }
 
 void SkeletonEditor::edit(Skeleton *p_node) {
+
 	skeleton = p_node;
+
+}
+
+void SkeletonEditor::_notification(int p_what) {
+	if (p_what==NOTIFICATION_ENTER_TREE) {
+		get_tree()->connect("node_removed", this, "_node_removed");
+	}
 }
 
 void SkeletonEditor::_node_removed(Node *p_node) {
@@ -139,6 +147,7 @@ void SkeletonEditor::_node_removed(Node *p_node) {
 
 void SkeletonEditor::_bind_methods() {
 	ClassDB::bind_method("_on_click_option", &SkeletonEditor::_on_click_option);
+	ClassDB::bind_method("_node_removed", &SkeletonEditor::_node_removed);
 }
 
 SkeletonEditor::SkeletonEditor() {

+ 1 - 0
editor/plugins/skeleton_editor_plugin.h

@@ -61,6 +61,7 @@ class SkeletonEditor : public Node {
 	friend class SkeletonEditorPlugin;
 
 protected:
+	void _notification(int p_what);
 	void _node_removed(Node *p_node);
 	static void _bind_methods();