diff --git a/source/blender/editors/interface/interface_ops.cc b/source/blender/editors/interface/interface_ops.cc index e0cbb73230a..219419b8790 100644 --- a/source/blender/editors/interface/interface_ops.cc +++ b/source/blender/editors/interface/interface_ops.cc @@ -63,6 +63,7 @@ #include "WM_types.hh" #include "ED_object.hh" +#include "ED_outliner.hh" #include "ED_paint.hh" #include "ED_undo.hh" @@ -1268,6 +1269,19 @@ bool UI_context_copy_to_selected_list(bContext *C, *r_lb = lb; *r_path = path; } + else if (CTX_wm_space_outliner(C)) { + const ID *id = ptr->owner_id; + if (!(id && (GS(id->name) == ID_OB))) { + return false; + } + + ListBase selected_objects = {nullptr}; + ED_outliner_selected_objects_get(C, &selected_objects); + LISTBASE_FOREACH (LinkData *, link, &selected_objects) { + Object *ob = static_cast(link->data); + r_lb->append(RNA_id_pointer_create(&ob->id)); + } + } else if (ptr->owner_id) { ID *id = ptr->owner_id;