[Bf-blender-cvs] [8e0953eb495] blender2.8: COW Operators: Fix VIEW3D_OT_view_lock_to_active

Ines Almeida noreply at git.blender.org
Sun May 20 19:53:08 CEST 2018


Commit: 8e0953eb495ac17dbd003deb7ead50f271bcd713
Author: Ines Almeida
Date:   Sun May 20 18:41:03 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB8e0953eb495ac17dbd003deb7ead50f271bcd713

COW Operators: Fix VIEW3D_OT_view_lock_to_active

Reviewers: aligorith, sergey

Maniphest Tasks: T54829

Differential Revision: https://developer.blender.org/D3365

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

M	source/blender/editors/space_view3d/view3d_edit.c
M	source/blender/editors/space_view3d/view3d_view.c

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

diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index c479267603d..a8e011c2508 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -2981,7 +2981,8 @@ static int view_lock_to_active_exec(bContext *C, wmOperator *UNUSED(op))
 
 		if (obact && obact->type == OB_ARMATURE) {
 			if (obact->mode & OB_MODE_POSE) {
-				bPoseChannel *pcham_act = BKE_pose_channel_active(obact);
+				Object *obact_eval = DEG_get_evaluated_object(CTX_data_depsgraph(C), obact);
+				bPoseChannel *pcham_act = BKE_pose_channel_active(obact_eval);
 				if (pcham_act) {
 					BLI_strncpy(v3d->ob_centre_bone, pcham_act->name, sizeof(v3d->ob_centre_bone));
 				}
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index 0e78fd02b30..12a084b71c3 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -775,15 +775,15 @@ void view3d_viewmatrix_set(
 		quat_to_mat4(rv3d->viewmat, rv3d->viewquat);
 		if (rv3d->persp == RV3D_PERSP) rv3d->viewmat[3][2] -= rv3d->dist;
 		if (v3d->ob_centre) {
-			Object *ob = v3d->ob_centre;
+			Object *ob_eval = DEG_get_evaluated_object(depsgraph, v3d->ob_centre);
 			float vec[3];
 			
-			copy_v3_v3(vec, ob->obmat[3]);
-			if (ob->type == OB_ARMATURE && v3d->ob_centre_bone[0]) {
-				bPoseChannel *pchan = BKE_pose_channel_find_name(ob->pose, v3d->ob_centre_bone);
+			copy_v3_v3(vec, ob_eval->obmat[3]);
+			if (ob_eval->type == OB_ARMATURE && v3d->ob_centre_bone[0]) {
+				bPoseChannel *pchan = BKE_pose_channel_find_name(ob_eval->pose, v3d->ob_centre_bone);
 				if (pchan) {
 					copy_v3_v3(vec, pchan->pose_mat[3]);
-					mul_m4_v3(ob->obmat, vec);
+					mul_m4_v3(ob_eval->obmat, vec);
 				}
 			}
 			translate_m4(rv3d->viewmat, -vec[0], -vec[1], -vec[2]);



More information about the Bf-blender-cvs mailing list