Multi Pose: Selecting a bone in one armature doesn't deselect bones in the other armatures
This was actually due to missing COW flushing of pose data on the "other" objects (only the active object was getting tagged for updates).
This commit is contained in:
@@ -299,7 +299,22 @@ void ED_pose_deselect_all_multi(Object **objects, uint objects_len, int select_m
|
||||
|
||||
for (uint ob_index = 0; ob_index < objects_len; ob_index++) {
|
||||
Object *ob_iter = objects[ob_index];
|
||||
bArmature *arm = ob_iter->data;
|
||||
|
||||
ED_pose_deselect_all(ob_iter, select_mode, ignore_visibility);
|
||||
|
||||
/* if there are some dependencies for visualizing armature state
|
||||
* (e.g. Mask Modifier in 'Armature' mode), force update
|
||||
*/
|
||||
if (arm->flag & ARM_HAS_VIZ_DEPS) {
|
||||
/* NOTE: ob not ob_act here is intentional - it's the source of the
|
||||
* bones being selected [T37247]
|
||||
*/
|
||||
DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
|
||||
}
|
||||
|
||||
/* need to tag armature for cow updates, or else selection doesn't update */
|
||||
DEG_id_tag_update(&arm->id, DEG_TAG_COPY_ON_WRITE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user