diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-12-13 18:22:35 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-12-13 18:27:01 +0300 |
commit | ac3d477481006933be2359581eb590cd3f2bf2d6 (patch) | |
tree | 760906045e6b28660db6367864508d0b5a2c50df /source/blender/makesrna/intern/rna_ID.c | |
parent | 84c5ccca7441ddbb05e6377612d364e54a9750ff (diff) |
RNA: Query is_updated flag from object data ID's rather than from object itself
Diffstat (limited to 'source/blender/makesrna/intern/rna_ID.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_ID.c | 16 |
1 files changed, 15 insertions, 1 deletions
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); |