Skip to content

Commit

Permalink
Merge pull request #90536 from Rindbee/make-the-inherited-scene-root-…
Browse files Browse the repository at this point in the history
…node-unable-to-change-type

Make the inherited scene root node unable to change type
  • Loading branch information
akien-mga committed Apr 13, 2024
2 parents 665a98b + e825a6f commit c889934
Showing 1 changed file with 19 additions and 10 deletions.
29 changes: 19 additions & 10 deletions editor/scene_tree_dock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2079,17 +2079,19 @@ bool SceneTreeDock::_validate_no_foreign() {
return false;
}

// When edited_scene inherits from another one the root Node will be the parent Scene,
// we don't want to consider that Node a foreign one otherwise we would not be able to
// delete it.
if (edited_scene->get_scene_inherited_state().is_valid() && edited_scene == E) {
continue;
}
if (edited_scene->get_scene_inherited_state().is_valid()) {
// When edited_scene inherits from another one the root Node will be the parent Scene,
// we don't want to consider that Node a foreign one otherwise we would not be able to
// delete it.
if (edited_scene == E && current_option != TOOL_REPLACE) {
continue;
}

if (edited_scene->get_scene_inherited_state().is_valid() && edited_scene->get_scene_inherited_state()->find_node_by_path(edited_scene->get_path_to(E)) >= 0) {
accept->set_text(TTR("Can't operate on nodes the current scene inherits from!"));
accept->popup_centered();
return false;
if (edited_scene == E || edited_scene->get_scene_inherited_state()->find_node_by_path(edited_scene->get_path_to(E)) >= 0) {
accept->set_text(TTR("Can't operate on nodes the current scene inherits from!"));
accept->popup_centered();
return false;
}
}
}

Expand Down Expand Up @@ -3443,6 +3445,13 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) {
can_replace = false;
break;
}

if (edited_scene->get_scene_inherited_state().is_valid()) {
if (E == edited_scene || edited_scene->get_scene_inherited_state()->find_node_by_path(edited_scene->get_path_to(E)) >= 0) {
can_replace = false;
break;
}
}
}

if (can_replace) {
Expand Down

0 comments on commit c889934

Please sign in to comment.