From ac3d477481006933be2359581eb590cd3f2bf2d6 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 13 Dec 2017 16:22:35 +0100 Subject: [PATCH] RNA: Query is_updated flag from object data ID's rather than from object itself --- source/blender/makesrna/intern/rna_ID.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index 44df8916796..c7446b5674a 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -772,6 +772,20 @@ static PointerRNA rna_IDPreview_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_ImagePreview, prv_img); } +static int rna_ID_is_updated_data_get(PointerRNA *ptr) +{ + ID *id = (ID *)ptr->data; + if (GS(id->name) != ID_OB) { + return 0; + } + Object *object = (Object *)id; + ID *data = object->data; + if (data == NULL) { + return 0; + } + return ((data->tag & LIB_TAG_ID_RECALC_ALL) != 0); +} + static PointerRNA rna_ID_override_reference_get(PointerRNA *ptr) { ID *id = (ID *)ptr->data; @@ -1028,8 +1042,8 @@ static void rna_def_ID(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Is Updated", "Data-block is tagged for recalculation"); prop = RNA_def_property(srna, "is_updated_data", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "tag", LIB_TAG_ID_RECALC_DATA); RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_boolean_funcs(prop, "rna_ID_is_updated_data_get", NULL); RNA_def_property_ui_text(prop, "Is Updated Data", "Data-block data is tagged for recalculation"); prop = RNA_def_property(srna, "is_library_indirect", PROP_BOOLEAN, PROP_NONE);