diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp index 596a2dfac16..0a05186bf75 100644 --- a/editor/editor_data.cpp +++ b/editor/editor_data.cpp @@ -925,6 +925,7 @@ Dictionary EditorData::restore_edited_scene_state(EditorSelection *p_selection, for (Node *E : es.selection) { p_selection->add_node(E); } + p_selection->cancel_update(); // Selection update results in redundant Node edit, so we cancel it. set_editor_plugin_states(es.editor_states); return es.custom_state; @@ -1326,6 +1327,10 @@ void EditorSelection::clear() { node_list_changed = true; } +void EditorSelection::cancel_update() { + changed = false; +} + EditorSelection::EditorSelection() { } diff --git a/editor/editor_data.h b/editor/editor_data.h index 28fe13e537f..400cbb0536e 100644 --- a/editor/editor_data.h +++ b/editor/editor_data.h @@ -312,6 +312,7 @@ public: void update(); void clear(); + void cancel_update(); // Returns all the selected nodes. TypedArray get_selected_nodes(); diff --git a/modules/gridmap/editor/grid_map_editor_plugin.cpp b/modules/gridmap/editor/grid_map_editor_plugin.cpp index 20f1aa357bb..14f7b9b5029 100644 --- a/modules/gridmap/editor/grid_map_editor_plugin.cpp +++ b/modules/gridmap/editor/grid_map_editor_plugin.cpp @@ -46,12 +46,6 @@ #include "scene/gui/separator.h" #include "scene/main/window.h" -void GridMapEditor::_node_removed(Node *p_node) { - if (p_node == node) { - node = nullptr; - } -} - void GridMapEditor::_configure() { if (!node) { return; @@ -1030,7 +1024,6 @@ void GridMapEditor::_update_theme() { void GridMapEditor::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { - get_tree()->connect("node_removed", callable_mp(this, &GridMapEditor::_node_removed)); mesh_library_palette->connect("item_selected", callable_mp(this, &GridMapEditor::_item_selected_cbk)); for (int i = 0; i < 3; i++) { grid[i] = RS::get_singleton()->mesh_create(); @@ -1051,7 +1044,6 @@ void GridMapEditor::_notification(int p_what) { } break; case NOTIFICATION_EXIT_TREE: { - get_tree()->disconnect("node_removed", callable_mp(this, &GridMapEditor::_node_removed)); _clear_clipboard_data(); for (int i = 0; i < 3; i++) { @@ -1471,7 +1463,6 @@ void GridMapEditorPlugin::make_visible(bool p_visible) { } else { grid_map_editor->spatial_editor_hb->hide(); grid_map_editor->hide(); - grid_map_editor->edit(nullptr); grid_map_editor->set_process(false); } } diff --git a/modules/gridmap/editor/grid_map_editor_plugin.h b/modules/gridmap/editor/grid_map_editor_plugin.h index 7c7dbacc812..6fedcd9c990 100644 --- a/modules/gridmap/editor/grid_map_editor_plugin.h +++ b/modules/gridmap/editor/grid_map_editor_plugin.h @@ -222,7 +222,6 @@ class GridMapEditor : public VBoxContainer { protected: void _notification(int p_what); - void _node_removed(Node *p_node); static void _bind_methods(); public: