Fix some invalid plugin edit calls

This commit is contained in:
kobewi 2023-06-11 22:11:25 +02:00
parent 37d1dfef9d
commit 366c9678ca
4 changed files with 6 additions and 10 deletions

View file

@ -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() {
}

View file

@ -312,6 +312,7 @@ public:
void update();
void clear();
void cancel_update();
// Returns all the selected nodes.
TypedArray<Node> get_selected_nodes();

View file

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

View file

@ -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: