diff options
Diffstat (limited to 'editor/scene_tree_dock.cpp')
| -rw-r--r-- | editor/scene_tree_dock.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index 7968fdef55..2b7e10de2c 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -378,6 +378,9 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; } if (editor_selection->get_selected_node_list().size() > 1) { + if (!_validate_no_foreign()) { + break; + } rename_dialog->popup_centered(); } } break; @@ -388,6 +391,9 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { } Tree *tree = scene_tree->get_scene_tree(); if (tree->is_anything_selected()) { + if (!_validate_no_foreign()) { + break; + } tree->grab_focus(); tree->edit_selected(); } @@ -2167,8 +2173,13 @@ void SceneTreeDock::_script_created(Ref<Script> p_script) { } undo_redo->commit_action(); + // Avoid changing the currently edited object. + Object *edited_object = InspectorDock::get_inspector_singleton()->get_edited_object(); + _push_item(p_script.ptr()); _update_script_button(); + + InspectorDock::get_inspector_singleton()->edit(edited_object); } void SceneTreeDock::_shader_created(Ref<Shader> p_shader) { |
