Browse Source

Properly remove GridMap node from editor on undo

Tomasz Chabora 6 years ago
parent
commit
6290616c0a
1 changed files with 3 additions and 0 deletions
  1. 3 0
      modules/gridmap/grid_map_editor_plugin.cpp

+ 3 - 0
modules/gridmap/grid_map_editor_plugin.cpp

@@ -1069,6 +1069,7 @@ void GridMapEditor::_notification(int p_what) {
 	switch (p_what) {
 	switch (p_what) {
 
 
 		case NOTIFICATION_ENTER_TREE: {
 		case NOTIFICATION_ENTER_TREE: {
+			get_tree()->connect("node_removed", this, "_node_removed");
 			mesh_library_palette->connect("item_selected", this, "_item_selected_cbk");
 			mesh_library_palette->connect("item_selected", this, "_item_selected_cbk");
 			for (int i = 0; i < 3; i++) {
 			for (int i = 0; i < 3; i++) {
 
 
@@ -1085,6 +1086,7 @@ void GridMapEditor::_notification(int p_what) {
 		} break;
 		} break;
 
 
 		case NOTIFICATION_EXIT_TREE: {
 		case NOTIFICATION_EXIT_TREE: {
+			get_tree()->disconnect("node_removed", this, "_node_removed");
 			_clear_clipboard_data();
 			_clear_clipboard_data();
 
 
 			for (int i = 0; i < 3; i++) {
 			for (int i = 0; i < 3; i++) {
@@ -1198,6 +1200,7 @@ void GridMapEditor::_bind_methods() {
 	ClassDB::bind_method("_floor_changed", &GridMapEditor::_floor_changed);
 	ClassDB::bind_method("_floor_changed", &GridMapEditor::_floor_changed);
 	ClassDB::bind_method("_floor_mouse_exited", &GridMapEditor::_floor_mouse_exited);
 	ClassDB::bind_method("_floor_mouse_exited", &GridMapEditor::_floor_mouse_exited);
 	ClassDB::bind_method("_set_selection", &GridMapEditor::_set_selection);
 	ClassDB::bind_method("_set_selection", &GridMapEditor::_set_selection);
+	ClassDB::bind_method("_node_removed", &GridMapEditor::_node_removed);
 
 
 	ClassDB::bind_method(D_METHOD("_set_display_mode", "mode"), &GridMapEditor::_set_display_mode);
 	ClassDB::bind_method(D_METHOD("_set_display_mode", "mode"), &GridMapEditor::_set_display_mode);
 }
 }