summaryrefslogtreecommitdiffstats
path: root/editor/scene_tree_dock.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/scene_tree_dock.cpp')
-rw-r--r--editor/scene_tree_dock.cpp11
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) {