Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <bastien@blender.org>2022-08-18 13:24:54 +0300
committerBastien Montagne <bastien@blender.org>2022-08-18 13:24:54 +0300
commitc3757504233ab7b1dca7102bb9239423d6419efc (patch)
tree6038ff26b8ef9e85e863b203cbee02f0bbf4a4e9 /source/blender/editors/interface/interface_templates.c
parent80b7902a56c88777c6dd3c199fd195aa537cbf5d (diff)
Fix T100476: Shift click to create overrides on objects not working.
Case where object was directly linked and not owned by a linked collection was not properly handled, added some level of support for it now. Note that the behavior may not always be ideal in cases where the linked object would be linked in many different local collecitons, hard to get best solution always from this Editor given limited hierarchy data available here.
Diffstat (limited to 'source/blender/editors/interface/interface_templates.c')
-rw-r--r--source/blender/editors/interface/interface_templates.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index 35e368bc6d6..bec4506ca41 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -683,7 +683,7 @@ ID *ui_template_id_liboverride_hierarchy_create(
* NOTE: do not attempt to perform such hierarchy override at all cost, if there is not enough
* context, better to abort than create random overrides all over the place. */
if (!ID_IS_OVERRIDABLE_LIBRARY_HIERARCHY(id)) {
- RNA_warning("The data-block %s is not direclty overridable", id->name);
+ RNA_warning("The data-block %s is not overridable", id->name);
return NULL;
}
@@ -789,6 +789,15 @@ ID *ui_template_id_liboverride_hierarchy_create(
BKE_lib_override_library_create(
bmain, scene, view_layer, NULL, id, &collection_active->id, NULL, &id_override, false);
}
+ else {
+ if (object_active != NULL) {
+ object_active->id.tag |= LIB_TAG_DOIT;
+ }
+ BKE_lib_override_library_create(
+ bmain, scene, view_layer, NULL, id, NULL, NULL, &id_override, false);
+ BKE_scene_collections_object_remove(bmain, scene, (Object *)id, true);
+ WM_event_add_notifier(C, NC_ID | NA_REMOVED, NULL);
+ }
break;
case ID_ME:
case ID_CU_LEGACY: