diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2018-10-13 00:02:02 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2018-10-13 01:34:24 +0300 |
commit | cf74a6db7ef8bf34f22a50b18a9a0aff517771ec (patch) | |
tree | 7eafa1905048b8e6a2e76816ceb3c7a8f217b95f | |
parent | e02f6ed13d463dfa7ae86897a3f31b483653bb59 (diff) |
Revert "Multi-Object Pose: POSE_OT_select_parent by Harsha"
This reverts commit dcf1210c44cb1e46bf387f326c5ee9daa2a53004.
In 2.79x select parent would only work for the active bone.
There is no reason to have it working for multi-objects.
-rw-r--r-- | source/blender/editors/armature/pose_select.c | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/source/blender/editors/armature/pose_select.c b/source/blender/editors/armature/pose_select.c index d78c3547b36..b50c44e6a6b 100644 --- a/source/blender/editors/armature/pose_select.c +++ b/source/blender/editors/armature/pose_select.c @@ -459,34 +459,27 @@ void POSE_OT_select_all(wmOperatorType *ot) static int pose_select_parent_exec(bContext *C, wmOperator *UNUSED(op)) { - /* only clear relevant transforms for selected bones */ - ViewLayer *view_layer = CTX_data_view_layer(C); - FOREACH_OBJECT_IN_MODE_BEGIN (view_layer, OB_MODE_POSE, ob_iter) - { - Object *ob = ob_iter; - bArmature *arm = (bArmature *)ob->data; - - FOREACH_PCHAN_SELECTED_IN_OBJECT_BEGIN (ob_iter, pchan) - { - if (pchan) { - bPoseChannel *parent = pchan->parent; - if ((parent) && !(parent->bone->flag & (BONE_HIDDEN_P | BONE_UNSELECTABLE))) { - parent->bone->flag |= BONE_SELECTED; - arm->act_bone = parent->bone; - } - else { - continue; - } - } - else { - continue; - } - ED_pose_bone_select_tag_update(ob); + Object *ob = BKE_object_pose_armature_get(CTX_data_active_object(C)); + bArmature *arm = (bArmature *)ob->data; + bPoseChannel *pchan, *parent; + + /* Determine if there is an active bone */ + pchan = CTX_data_active_pose_bone(C); + if (pchan) { + parent = pchan->parent; + if ((parent) && !(parent->bone->flag & (BONE_HIDDEN_P | BONE_UNSELECTABLE))) { + parent->bone->flag |= BONE_SELECTED; + arm->act_bone = parent->bone; + } + else { + return OPERATOR_CANCELLED; } - FOREACH_PCHAN_SELECTED_IN_OBJECT_END; } - FOREACH_OBJECT_IN_MODE_END; + else { + return OPERATOR_CANCELLED; + } + ED_pose_bone_select_tag_update(ob); return OPERATOR_FINISHED; } |