Merge pull request #89447 from ajreckof/fix-error-crash-on-change-type-root-after-external-changes

Fix error where update wouldn't reconnect the signal it should have reconnected and led to errors and crash.
This commit is contained in:
Rémi Verschelde 2024-03-24 01:15:38 +01:00
commit c76d2f03b7
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 14 additions and 10 deletions

View file

@ -3789,14 +3789,6 @@ void EditorNode::_set_current_scene_nocheck(int p_idx) {
editor_folding.save_scene_folding(editor_data.get_edited_scene_root(p_idx), editor_data.get_scene_path(p_idx));
}
if (editor_data.check_and_update_scene(p_idx)) {
if (editor_data.get_scene_path(p_idx) != "") {
editor_folding.load_scene_folding(editor_data.get_edited_scene_root(p_idx), editor_data.get_scene_path(p_idx));
}
EditorUndoRedoManager::get_singleton()->clear_history(false, editor_data.get_scene_history_id(p_idx));
}
changing_scene = true;
editor_data.save_edited_scene_state(editor_selection, &editor_history, _get_main_scene_state());
@ -3835,6 +3827,14 @@ void EditorNode::_set_current_scene_nocheck(int p_idx) {
if (tabs_to_close.is_empty()) {
callable_mp(this, &EditorNode::_set_main_scene_state).call_deferred(state, get_edited_scene()); // Do after everything else is done setting up.
}
if (editor_data.check_and_update_scene(p_idx)) {
if (!editor_data.get_scene_path(p_idx).is_empty()) {
editor_folding.load_scene_folding(editor_data.get_edited_scene_root(p_idx), editor_data.get_scene_path(p_idx));
}
EditorUndoRedoManager::get_singleton()->clear_history(false, editor_data.get_scene_history_id(p_idx));
}
}
void EditorNode::setup_color_picker(ColorPicker *p_picker) {