diff --git a/source/blender/include/transform.h b/source/blender/include/transform.h index b776bd26c1a..38657175702 100755 --- a/source/blender/include/transform.h +++ b/source/blender/include/transform.h @@ -261,9 +261,8 @@ int calc_manipulator_stats(struct ScrArea *sa); /*********************** TransData Creation and General Handling *********** */ void createTransData(TransInfo *t); void sort_trans_data_dist(TransInfo *t); -void clear_trans_object_base_flags(void); void add_tdi_poin(float *poin, float *old, float delta); -void special_aftertrans_update(char mode, int flip, short canceled); +void special_aftertrans_update(short canceled); /*********************** Constraints *****************************/ void getConstraintMatrix(TransInfo *t); diff --git a/source/blender/src/transform.c b/source/blender/src/transform.c index e114d13bbf4..62ae855b757 100755 --- a/source/blender/src/transform.c +++ b/source/blender/src/transform.c @@ -566,21 +566,10 @@ void Transform() /* free data, reset vars */ postTrans(&Trans); - - /* mess from old transform, just for now (ton) */ - { - char cmode='g'; - - if(Trans.mode==TFM_RESIZE) cmode= 's'; - else if(Trans.mode==TFM_ROTATION) cmode= 'r'; - - /* aftertrans does insert ipos and action channels */ - special_aftertrans_update(cmode, 0, (short)(Trans.state == TRANS_CANCEL)); - - if(G.obedit==NULL && G.obpose==NULL) - clear_trans_object_base_flags(); - } - + + /* aftertrans does insert ipos and action channels, and clears base flags */ + special_aftertrans_update((short)(Trans.state == TRANS_CANCEL)); + /* send events out for redraws */ allqueue(REDRAWVIEW3D, 0); allqueue(REDRAWBUTSOBJECT, 0); @@ -731,19 +720,8 @@ void ManipulatorTransform() /* free data, reset vars */ postTrans(&Trans); - /* mess from old transform, just for now (ton) */ - { - char cmode='g'; - - if(Trans.mode==TFM_RESIZE) cmode= 's'; - else if(Trans.mode==TFM_ROTATION) cmode= 'r'; - /* aftertrans does displists, ipos and action channels */ - /* 7 = keyflags, meaning do loc/rot/scale ipos. Not sure if I like the old method to detect what changed (ton) */ - special_aftertrans_update(cmode, 0, (short)(Trans.state == TRANS_CANCEL)); - - if(G.obedit==NULL && G.obpose==NULL) - clear_trans_object_base_flags(); - } + /* aftertrans does insert ipos and action channels, and clears base flags */ + special_aftertrans_update((short)(Trans.state == TRANS_CANCEL)); /* send events out for redraws */ allqueue(REDRAWVIEW3D, 0); diff --git a/source/blender/src/transform_conversions.c b/source/blender/src/transform_conversions.c index 9fffa0b433e..f86245325d8 100755 --- a/source/blender/src/transform_conversions.c +++ b/source/blender/src/transform_conversions.c @@ -1330,7 +1330,7 @@ static void set_trans_object_base_flags(TransInfo *t) } } -void clear_trans_object_base_flags(void) +static void clear_trans_object_base_flags(void) { Base *base; @@ -1344,7 +1344,7 @@ void clear_trans_object_base_flags(void) } /* inserting keys, refresh ipo-keys, softbody, redraw events... (ton) */ -void special_aftertrans_update(char mode, int flip, short cancelled) +void special_aftertrans_update(short cancelled) { Object *ob; Base *base; @@ -1406,8 +1406,9 @@ void special_aftertrans_update(char mode, int flip, short cancelled) while(base) { if(base->flag & BA_DO_IPO) redrawipo= 1; + ob= base->object; - + /* reset soft body object */ if(ob->softflag & OB_SB_ENABLE) sbObjectReset(ob); /* Set autokey if necessary */ @@ -1437,6 +1438,8 @@ void special_aftertrans_update(char mode, int flip, short cancelled) } + clear_trans_object_base_flags(); + if(redrawipo) { allqueue(REDRAWNLA, 0); allqueue(REDRAWACTION, 0);