diff options
Diffstat (limited to 'source/blender/editors/transform/transform_convert.c')
-rw-r--r-- | source/blender/editors/transform/transform_convert.c | 45 |
1 files changed, 18 insertions, 27 deletions
diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c index 064057990e0..5d1fd1543df 100644 --- a/source/blender/editors/transform/transform_convert.c +++ b/source/blender/editors/transform/transform_convert.c @@ -774,7 +774,7 @@ bool constraints_list_needinv(TransInfo *t, ListBase *list) bConstraint *con; /* loop through constraints, checking if there's one of the mentioned - * constraints needing special crazyspace corrections + * constraints needing special crazy-space corrections */ if (list) { for (con = list->first; con; con = con->next) { @@ -1148,21 +1148,6 @@ void createTransData(bContext *C, TransInfo *t) } t->flag |= T_OBJECT; - - /* Check if we're transforming the camera from the camera */ - if ((t->spacetype == SPACE_VIEW3D) && (t->region->regiontype == RGN_TYPE_WINDOW)) { - View3D *v3d = t->view; - RegionView3D *rv3d = t->region->regiondata; - if ((rv3d->persp == RV3D_CAMOB) && v3d->camera) { - /* we could have a flag to easily check an object is being transformed */ - if (v3d->camera->id.tag & LIB_TAG_DOIT) { - t->flag |= T_CAMERA; - } - } - else if (v3d->ob_center && v3d->ob_center->id.tag & LIB_TAG_DOIT) { - t->flag |= T_CAMERA; - } - } convert_type = TC_OBJECT; } @@ -1175,6 +1160,7 @@ void createTransData(bContext *C, TransInfo *t) break; case TC_POSE: createTransPose(t); + /* Disable PET, its not usable in pose mode yet [#32444] */ init_prop_edit = false; break; case TC_ARMATURE_VERTS: @@ -1224,6 +1210,20 @@ void createTransData(bContext *C, TransInfo *t) break; case TC_OBJECT: createTransObject(C, t); + /* Check if we're transforming the camera from the camera */ + if ((t->spacetype == SPACE_VIEW3D) && (t->region->regiontype == RGN_TYPE_WINDOW)) { + View3D *v3d = t->view; + RegionView3D *rv3d = t->region->regiondata; + if ((rv3d->persp == RV3D_CAMOB) && v3d->camera) { + /* we could have a flag to easily check an object is being transformed */ + if (v3d->camera->id.tag & LIB_TAG_DOIT) { + t->flag |= T_CAMERA; + } + } + else if (v3d->ob_center && v3d->ob_center->id.tag & LIB_TAG_DOIT) { + t->flag |= T_CAMERA; + } + } break; case TC_OBJECT_TEXSPACE: createTransTexspace(t); @@ -1292,18 +1292,9 @@ void createTransData(bContext *C, TransInfo *t) * and are still added into transform data. */ sort_trans_data_selected_first(t); } - } - - /* exception... hackish, we want bonesize to use bone orientation matrix (ton) */ - if (t->mode == TFM_BONESIZE) { - t->flag &= ~(T_EDIT | T_POINTS); - t->flag |= T_POSE; - t->obedit_type = -1; - t->data_type = TC_NONE; - FOREACH_TRANS_DATA_CONTAINER (t, tc) { - tc->poseobj = tc->obedit; - tc->obedit = NULL; + if (!init_prop_edit) { + t->flag &= ~T_PROP_EDIT_ALL; } } |