SceneTreeDock Ensure to deactivate multi edit when selection changes to a single node

(cherry picked from commit 5d25115e80)
This commit is contained in:
kleonc 2021-08-28 01:55:06 +02:00 committed by Rémi Verschelde
parent 8f66e6148d
commit 047108a4ca
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -847,7 +847,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
break; break;
} }
Ref<MultiNodeEdit> mne = memnew(MultiNodeEdit); Ref<MultiNodeEdit> mne = memnew(MultiNodeEdit);
for (const Map<Node *, Object *>::Element *E = EditorNode::get_singleton()->get_editor_selection()->get_selection().front(); E; E = E->next()) { for (const Map<Node *, Object *>::Element *E = editor_selection->get_selection().front(); E; E = E->next()) {
mne->add_node(root->get_path_to(E->key())); mne->add_node(root->get_path_to(E->key()));
} }
@ -2083,11 +2083,11 @@ void SceneTreeDock::_update_script_button() {
if (!profile_allow_script_editing) { if (!profile_allow_script_editing) {
button_create_script->hide(); button_create_script->hide();
button_detach_script->hide(); button_detach_script->hide();
} else if (EditorNode::get_singleton()->get_editor_selection()->get_selection().size() == 0) { } else if (editor_selection->get_selection().size() == 0) {
button_create_script->hide(); button_create_script->hide();
button_detach_script->hide(); button_detach_script->hide();
} else if (EditorNode::get_singleton()->get_editor_selection()->get_selection().size() == 1) { } else if (editor_selection->get_selection().size() == 1) {
Node *n = EditorNode::get_singleton()->get_editor_selection()->get_selected_node_list()[0]; Node *n = editor_selection->get_selected_node_list()[0];
if (n->get_script().is_null()) { if (n->get_script().is_null()) {
button_create_script->show(); button_create_script->show();
button_detach_script->hide(); button_detach_script->hide();
@ -2110,10 +2110,12 @@ void SceneTreeDock::_update_script_button() {
} }
void SceneTreeDock::_selection_changed() { void SceneTreeDock::_selection_changed() {
int selection_size = EditorNode::get_singleton()->get_editor_selection()->get_selection().size(); int selection_size = editor_selection->get_selection().size();
if (selection_size > 1) { if (selection_size > 1) {
//automatically turn on multi-edit //automatically turn on multi-edit
_tool_selected(TOOL_MULTI_EDIT); _tool_selected(TOOL_MULTI_EDIT);
} else if (selection_size == 1) {
editor->push_item(editor_selection->get_selection().front()->key());
} else if (selection_size == 0) { } else if (selection_size == 0) {
editor->push_item(nullptr); editor->push_item(nullptr);
} }