diff options
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 4 | ||||
-rw-r--r-- | source/blender/editors/transform/transform_manipulator.c | 8 |
2 files changed, 4 insertions, 8 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 7e74d12941b..5b1813559bb 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -1403,7 +1403,7 @@ static void createTransCurveVerts(bContext *C, TransInfo *t) ) { VECCOPY(td->iloc, bezt->vec[0]); td->loc= bezt->vec[0]; - VECCOPY(td->center, bezt->vec[1]); + VECCOPY(td->center, bezt->vec[(hide_handles || bezt->f2 & SELECT) ? 1:0]); if (hide_handles) { if(bezt->f2 & SELECT) td->flag= TD_SELECTED; else td->flag= 0; @@ -1462,7 +1462,7 @@ static void createTransCurveVerts(bContext *C, TransInfo *t) ) { VECCOPY(td->iloc, bezt->vec[2]); td->loc= bezt->vec[2]; - VECCOPY(td->center, bezt->vec[1]); + VECCOPY(td->center, bezt->vec[(hide_handles || bezt->f2 & SELECT) ? 1:2]); if (hide_handles) { if(bezt->f2 & SELECT) td->flag= TD_SELECTED; else td->flag= 0; diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c index 030ad190dc3..f3afd5793bc 100644 --- a/source/blender/editors/transform/transform_manipulator.c +++ b/source/blender/editors/transform/transform_manipulator.c @@ -308,7 +308,7 @@ int calc_manipulator_stats(const bContext *C) while(a--) { /* exceptions * if handles are hidden then only check the center points. - * If 2 or more are selected then only use the center point too. + * If the center knot is selected then only use this as the center point. */ if (cu->drawflag & CU_HIDE_HANDLES) { if (bezt->f2 & SELECT) { @@ -316,7 +316,7 @@ int calc_manipulator_stats(const bContext *C) totsel++; } } - else if ( (bezt->f1 & SELECT) + (bezt->f2 & SELECT) + (bezt->f3 & SELECT) > SELECT ) { + else if (bezt->f2 & SELECT) { calc_tw_center(scene, bezt->vec[1]); totsel++; } @@ -325,10 +325,6 @@ int calc_manipulator_stats(const bContext *C) calc_tw_center(scene, bezt->vec[0]); totsel++; } - if(bezt->f2) { - calc_tw_center(scene, bezt->vec[1]); - totsel++; - } if(bezt->f3) { calc_tw_center(scene, bezt->vec[2]); totsel++; |