Fix T68444: outliner bone visibility not updating
authorNathan Craddock <nzcraddock@gmail.com>
Wed, 21 Aug 2019 04:30:32 +0000 (22:30 -0600)
committerNathan Craddock <nzcraddock@gmail.com>
Wed, 21 Aug 2019 04:30:32 +0000 (22:30 -0600)
Tags for update when pose bone visibility is toggled in the outliner.

source/blender/editors/space_outliner/outliner_draw.c

index cd7cd8b84fb4a49b171f59cded0b04a79aecf9d1..5116e58453f8852886d6d43fcc60f1aa47e1bf30 100644 (file)
@@ -177,8 +177,9 @@ static void restrictbutton_r_lay_cb(bContext *C, void *poin, void *UNUSED(poin2)
   WM_event_add_notifier(C, NC_SCENE | ND_RENDER_OPTIONS, poin);
 }
 
-static void restrictbutton_bone_visibility_cb(bContext *C, void *UNUSED(poin), void *poin2)
+static void restrictbutton_bone_visibility_cb(bContext *C, void *poin, void *poin2)
 {
+  bArmature *arm = (bArmature *)poin;
   Bone *bone = (Bone *)poin2;
   if (bone->flag & BONE_HIDDEN_P) {
     bone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
@@ -189,6 +190,7 @@ static void restrictbutton_bone_visibility_cb(bContext *C, void *UNUSED(poin), v
   }
 
   WM_event_add_notifier(C, NC_OBJECT | ND_POSE, NULL);
+  DEG_id_tag_update(&arm->id, ID_RECALC_COPY_ON_WRITE);
 }
 
 static void restrictbutton_bone_select_cb(bContext *C, void *UNUSED(poin), void *poin2)