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>2020-12-07 18:52:45 +0300
committerBastien Montagne <bastien@blender.org>2020-12-07 18:55:51 +0300
commitbab57550b69b8429bb2f081fbc75f1d1ca035a34 (patch)
tree2a92f1ea9a693b32bc22dea73d1dfe7bdfb4506b /source/blender/editors/object/object_constraint.c
parent513578b182fd0c427b9da653b715f8bfb16faec1 (diff)
LibOverride: Abstract a bit handling of local items of RNA collections.
RNA collections that support insertion of new items in liboverride data-block need a special way to distiguish between locale and orig-from-linked items (since some operations are allowed on the forer, but no the latter). In future we want a proper solution to abstract that at the `BKE_lib_override` level, but for now we need to add some code for each case. Note that this commit also fixes a few potential issues with GPencil modifiers, and constraints, regarding their handling of local overrides.
Diffstat (limited to 'source/blender/editors/object/object_constraint.c')
-rw-r--r--source/blender/editors/object/object_constraint.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c
index fa8531dfb48..e684ad03f53 100644
--- a/source/blender/editors/object/object_constraint.c
+++ b/source/blender/editors/object/object_constraint.c
@@ -706,11 +706,9 @@ static bool edit_constraint_poll_generic(bContext *C,
return false;
}
- if (ID_IS_OVERRIDE_LIBRARY(ob) && !is_liboverride_allowed) {
- if ((con == NULL) || (con->flag & CONSTRAINT_OVERRIDE_LIBRARY_LOCAL) == 0) {
- CTX_wm_operator_poll_msg_set(C, "Cannot edit constraints coming from library override");
- return false;
- }
+ if (!is_liboverride_allowed && !BKE_constraint_is_local_in_liboverride(ob, con)) {
+ CTX_wm_operator_poll_msg_set(C, "Cannot edit constraints coming from library override");
+ return false;
}
return true;