Commit: e63fbc992d8e54d74c9c433b212cf8037321f09d
Author: Joshua Leung
Date:   Mon May 28 18:51:56 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBe63fbc992d8e54d74c9c433b212cf8037321f09d

Fix T55231: Setting bone.select from RNA didn't tag for copy on write

This was causing problems with addons such as the Selection Sets addon used
in studio by the animators.

===================================================================

M       source/blender/makesrna/intern/rna_armature.c

===================================================================

diff --git a/source/blender/makesrna/intern/rna_armature.c 
b/source/blender/makesrna/intern/rna_armature.c
index 0819a5e828e..30c643388af 100644
--- a/source/blender/makesrna/intern/rna_armature.c
+++ b/source/blender/makesrna/intern/rna_armature.c
@@ -168,8 +168,10 @@ static void rna_Bone_select_update(Main *UNUSED(bmain), 
Scene *UNUSED(scene), Po
 {
        ID *id = ptr->id.data;
        
-       /* special updates for cases where rigs try to hook into armature 
drawing stuff 
-        * e.g. Mask Modifier - 'Armature' option
+       /* 1) special updates for cases where rigs try to hook into armature 
drawing stuff
+        *    e.g. Mask Modifier - 'Armature' option
+        * 2) tag armature for copy-on-write, so that selection status (set by 
addons)
+        *    will update properly, like standard tools do already
         */
        if (id) {
                if (GS(id->name) == ID_AR) {
@@ -178,6 +180,8 @@ static void rna_Bone_select_update(Main *UNUSED(bmain), 
Scene *UNUSED(scene), Po
                        if (arm->flag & ARM_HAS_VIZ_DEPS) {
                                DEG_id_tag_update(id, OB_RECALC_DATA);
                        }
+                       
+                       DEG_id_tag_update(id, DEG_TAG_COPY_ON_WRITE);
                }
                else if (GS(id->name) == ID_OB) {
                        Object *ob = (Object *)id;
@@ -186,6 +190,8 @@ static void rna_Bone_select_update(Main *UNUSED(bmain), 
Scene *UNUSED(scene), Po
                        if (arm->flag & ARM_HAS_VIZ_DEPS) {
                                DEG_id_tag_update(id, OB_RECALC_DATA);
                        }
+                       
+                       DEG_id_tag_update(&arm->id, DEG_TAG_COPY_ON_WRITE);
                }
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to