diff options
3 files changed, 17 insertions, 6 deletions
diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c index 87fd2f48ac0..c2e3c8ef508 100644 --- a/source/blender/editors/transform/transform_convert.c +++ b/source/blender/editors/transform/transform_convert.c @@ -789,7 +789,9 @@ void clipUVData(TransInfo *t) /* ********************* ANIMATION EDITORS (GENERAL) ************************* */ -/* In modal, `t->center_global` may not have been setted yet. */ +/** + * For modal operation: `t->center_global` may not have been set yet. + */ void transform_convert_center_global_v2(TransInfo *t, float r_center[2]) { if (t->flag & T_MODAL) { @@ -801,6 +803,14 @@ void transform_convert_center_global_v2(TransInfo *t, float r_center[2]) } } +void transform_convert_center_global_v2_int(TransInfo *t, int r_center[2]) +{ + float center[2]; + transform_convert_center_global_v2(t, center); + r_center[0] = round_fl_to_int(center[0]); + r_center[1] = round_fl_to_int(center[1]); +} + /* This function tests if a point is on the "mouse" side of the cursor/frame-marking */ bool FrameOnMouseSide(char side, float frame, float cframe) { @@ -2528,7 +2538,7 @@ void createTransData(bContext *C, TransInfo *t) t->obedit_type = -1; t->num.flag |= NUM_NO_FRACTION; /* sequencer has no use for floating point trasnform */ - createTransSeqData(C, t); + createTransSeqData(t); countAndCleanTransDataContainer(t); } else if (t->spacetype == SPACE_GRAPH) { diff --git a/source/blender/editors/transform/transform_convert.h b/source/blender/editors/transform/transform_convert.h index 4c12b91c2b4..d616f24ba86 100644 --- a/source/blender/editors/transform/transform_convert.h +++ b/source/blender/editors/transform/transform_convert.h @@ -105,6 +105,7 @@ bool constraints_list_needinv(TransInfo *t, ListBase *list); void calc_distanceCurveVerts(TransData *head, TransData *tail); struct TransDataCurveHandleFlags *initTransDataCurveHandles(TransData *td, struct BezTriple *bezt); void transform_convert_center_global_v2(TransInfo *t, float r_center[2]); +void transform_convert_center_global_v2_int(TransInfo *t, int r_center[2]); bool FrameOnMouseSide(char side, float frame, float cframe); /* transform_convert_action.c */ @@ -163,7 +164,7 @@ void createTransParticleVerts(bContext *C, TransInfo *t); void createTransSculpt(TransInfo *t); /* transform_convert_sequence.c */ -void createTransSeqData(bContext *C, TransInfo *t); +void createTransSeqData(TransInfo *t); /* transform_convert_tracking.c */ void createTransTrackingData(bContext *C, TransInfo *t); diff --git a/source/blender/editors/transform/transform_convert_sequencer.c b/source/blender/editors/transform/transform_convert_sequencer.c index c11858b922a..a35c814ee23 100644 --- a/source/blender/editors/transform/transform_convert_sequencer.c +++ b/source/blender/editors/transform/transform_convert_sequencer.c @@ -520,7 +520,7 @@ static void freeSeqData(TransInfo *t, TransDataContainer *tc, TransCustomData *c DEG_id_tag_update(&t->scene->id, ID_RECALC_SEQUENCER_STRIPS); } -void createTransSeqData(bContext *C, TransInfo *t) +void createTransSeqData(TransInfo *t) { #define XXX_DURIAN_ANIM_TX_HACK @@ -542,8 +542,8 @@ void createTransSeqData(bContext *C, TransInfo *t) tc->custom.type.free_cb = freeSeqData; /* only side on which center is gets transformed */ - float center[2]; - transform_convert_center_global_v2(t, center); + int center[2]; + transform_convert_center_global_v2_int(t, center); t->frame_side = (center[0] > CFRA) ? 'R' : 'L'; #ifdef XXX_DURIAN_ANIM_TX_HACK |