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:
authorCampbell Barton <ideasman42@gmail.com>2020-02-10 13:58:52 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-02-11 03:21:26 +0300
commit1c61f3e018d383bad52a179e1241e37b234b0b0d (patch)
tree2646b85104e26d8703eda02ee74ea17ef0725c51 /source/blender/makesrna/intern/rna_layer.c
parent189e96ba687c88bf40f86ba64e5054c70ebde95b (diff)
RNA: Raise error assigning an active object which doesn't exist
Previously this silently cleared the view layers active object.
Diffstat (limited to 'source/blender/makesrna/intern/rna_layer.c')
-rw-r--r--source/blender/makesrna/intern/rna_layer.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/source/blender/makesrna/intern/rna_layer.c b/source/blender/makesrna/intern/rna_layer.c
index 40c6229f9b1..da882959ef2 100644
--- a/source/blender/makesrna/intern/rna_layer.c
+++ b/source/blender/makesrna/intern/rna_layer.c
@@ -88,11 +88,22 @@ static PointerRNA rna_LayerObjects_active_object_get(PointerRNA *ptr)
static void rna_LayerObjects_active_object_set(PointerRNA *ptr,
PointerRNA value,
- struct ReportList *UNUSED(reports))
+ struct ReportList *reports)
{
ViewLayer *view_layer = (ViewLayer *)ptr->data;
if (value.data) {
- view_layer->basact = BKE_view_layer_base_find(view_layer, (Object *)value.data);
+ Object *ob = value.data;
+ Base *basact_test = BKE_view_layer_base_find(view_layer, ob);
+ if (basact_test != NULL) {
+ view_layer->basact = basact_test;
+ }
+ else {
+ BKE_reportf(reports,
+ RPT_ERROR,
+ "ViewLayer '%s' does not contain object '%s'",
+ view_layer->name,
+ ob->id.name + 2);
+ }
}
else {
view_layer->basact = NULL;