@@ -441,23 +441,32 @@ void EditorResourcePicker::_edit_menu_cbk(int p_which) {
441441 EditorSettings::get_singleton ()->set_resource_clipboard (edited_resource);
442442 } break ;
443443
444- case OBJ_MENU_PASTE:
445- case OBJ_MENU_PASTE_AS_UNIQUE: {
444+ case OBJ_MENU_PASTE: {
446445 edited_resource = EditorSettings::get_singleton ()->get_resource_clipboard ();
447- if (p_which == OBJ_MENU_PASTE_AS_UNIQUE ||
448- (EditorNode::get_singleton ()->get_edited_scene () && edited_resource->is_built_in () && edited_resource->get_path ().get_slice (" ::" , 0 ) != EditorNode::get_singleton ()->get_edited_scene ()->get_scene_file_path ())) {
449- // Automatically make resource unique if it belongs to another scene,
450- // or if requested by the user with the Paste as Unique option.
451- if (p_which == OBJ_MENU_PASTE_AS_UNIQUE) {
452- // Use the recursive version when using Paste as Unique.
453- // This will show up a dialog to select which resources to make unique.
454- _edit_menu_cbk (OBJ_MENU_MAKE_UNIQUE_RECURSIVE);
455- } else {
456- _edit_menu_cbk (OBJ_MENU_MAKE_UNIQUE);
446+ bool make_unique = true ;
447+
448+ // Automatically make resource unique if it belongs to another scene or resource.
449+ if (!EditorNode::get_singleton ()->get_edited_scene () || !edited_resource->is_built_in () || edited_resource->get_path ().get_slice (" ::" , 0 ) == EditorNode::get_singleton ()->get_edited_scene ()->get_scene_file_path ()) {
450+ make_unique = false ;
451+ } else if (resource_owner) {
452+ Resource *res = Object::cast_to<Resource>(resource_owner);
453+ if (res && edited_resource->get_path ().get_slice (" ::" , 0 ) == res->get_path ().get_slice (" ::" , 0 )) {
454+ make_unique = false ;
457455 }
458- return ;
459456 }
460- _resource_changed ();
457+
458+ if (make_unique) {
459+ _edit_menu_cbk (OBJ_MENU_MAKE_UNIQUE);
460+ } else {
461+ _resource_changed ();
462+ }
463+ } break ;
464+
465+ case OBJ_MENU_PASTE_AS_UNIQUE: {
466+ edited_resource = EditorSettings::get_singleton ()->get_resource_clipboard ();
467+ // Use the recursive version when using Paste as Unique.
468+ // This will show up a dialog to select which resources to make unique.
469+ _edit_menu_cbk (OBJ_MENU_MAKE_UNIQUE_RECURSIVE);
461470 } break ;
462471
463472 case OBJ_MENU_SHOW_IN_FILE_SYSTEM: {
0 commit comments