From bab57550b69b8429bb2f081fbc75f1d1ca035a34 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Mon, 7 Dec 2020 16:52:45 +0100 Subject: 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. --- source/blender/editors/object/object_constraint.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'source/blender/editors/object/object_constraint.c') 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; -- cgit v1.2.3