diff options
author | Jacques Lucke <jacques@blender.org> | 2022-03-22 18:33:55 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2022-03-22 18:33:55 +0300 |
commit | 87a0770bb969ce37d9a41a04c1658ea09c63933a (patch) | |
tree | ea517a870856d171803500532caced2cade02674 /source/blender/makesrna | |
parent | 8344ef73940d985a56d83fcd01825973597eb6b4 (diff) |
Fix T96361: missing update when changing texture mapping properties
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r-- | source/blender/makesrna/intern/rna_texture.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index 3c8f1ee28c9..56d1b48811a 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -21,6 +21,7 @@ #include "BLI_utildefines.h" #include "BKE_node.h" +#include "BKE_node_tree_update.h" #include "BKE_paint.h" #include "RNA_define.h" @@ -191,8 +192,23 @@ static void rna_Texture_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *pt static void rna_Texture_mapping_update(Main *bmain, Scene *scene, PointerRNA *ptr) { + ID *id = ptr->owner_id; TexMapping *texmap = ptr->data; BKE_texture_mapping_init(texmap); + + if (GS(id->name) == ID_NT) { + bNodeTree *ntree = (bNodeTree *)ptr->owner_id; + /* Try to find and tag the node that this #TexMapping belongs to. */ + LISTBASE_FOREACH (bNode *, node, &ntree->nodes) { + /* This assumes that the #TexMapping is stored at the beginning of the node storage. This is + * generally true, see #NodeTexBase. If the assumption happens to be false, there might be a + * missing update. */ + if (node->storage == texmap) { + BKE_ntree_update_tag_node_property(ntree, node); + } + } + } + rna_Texture_update(bmain, scene, ptr); } |