Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2018-10-13 00:02:02 +0300
committerDalai Felinto <dfelinto@gmail.com>2018-10-13 01:34:24 +0300
commitcf74a6db7ef8bf34f22a50b18a9a0aff517771ec (patch)
tree7eafa1905048b8e6a2e76816ceb3c7a8f217b95f
parente02f6ed13d463dfa7ae86897a3f31b483653bb59 (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.c43
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;
}