Merge pull request #52611 from KoBeWi/outsider_resources

This commit is contained in:
Rémi Verschelde 2022-01-04 10:01:53 +01:00 committed by GitHub
commit b609ab3b9c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 4 deletions

View file

@ -2129,11 +2129,19 @@ static bool overrides_external_editor(Object *p_object) {
return script->get_language()->overrides_external_editor();
}
void EditorNode::_edit_current() {
void EditorNode::_edit_current(bool p_skip_foreign) {
ObjectID current = editor_history.get_current();
Object *current_obj = current.is_valid() ? ObjectDB::get_instance(current) : nullptr;
bool inspector_only = editor_history.is_current_inspector_only();
RES res = Object::cast_to<Resource>(current_obj);
if (p_skip_foreign && res.is_valid()) {
if (res->get_path().find("::") > -1 && res->get_path().get_slice("::", 0) != editor_data.get_scene_path(get_current_tab())) {
// Trying to edit resource that belongs to another scene; abort.
current_obj = nullptr;
}
}
bool inspector_only = editor_history.is_current_inspector_only();
this->current = current_obj;
if (!current_obj) {
@ -3494,7 +3502,7 @@ void EditorNode::set_current_scene(int p_idx) {
}
Dictionary state = editor_data.restore_edited_scene_state(editor_selection, &editor_history);
_edit_current();
_edit_current(true);
_update_title();

View file

@ -459,7 +459,7 @@ private:
void _dialog_action(String p_file);
void _edit_current();
void _edit_current(bool p_skip_foreign = false);
void _dialog_display_save_error(String p_file, Error p_error);
void _dialog_display_load_error(String p_file, Error p_error);