diff options
author | Martin Poirier <theeth@yahoo.com> | 2010-01-19 01:21:32 +0300 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2010-01-19 01:21:32 +0300 |
commit | b6421418e49fe9b6e7db99e072f7b9cd074028c7 (patch) | |
tree | 40d1aa33c0b0fcb5e084fd47154f1442f83ab0b5 /source | |
parent | cd068e5530bee6351dd930a3a458f1f939936a6e (diff) |
Fix input issue with Time Scale (center2d needs to be specially calculated for that transformation).
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/transform/transform.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 09fce29cbc7..5e833708751 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -217,7 +217,7 @@ void projectIntView(TransInfo *t, float *vec, int *adr) UI_view2d_to_region_no_clip(t->view, v[0], v[1], adr, adr+1); } - else if(ELEM(t->spacetype, SPACE_IPO, SPACE_NLA)) { + else if(ELEM3(t->spacetype, SPACE_IPO, SPACE_NLA, SPACE_ACTION)) { int out[2] = {0, 0}; UI_view2d_view_to_region((View2D *)t->view, vec[0], vec[1], out, out+1); @@ -5449,10 +5449,20 @@ int TimeSlide(TransInfo *t, short mval[2]) void initTimeScale(TransInfo *t) { + int center[2]; + t->mode = TFM_TIME_SCALE; t->transform = TimeScale; - - // TODO: the scaling ratios obtained here aren't rapid enough + + /* recalculate center2d to use CFRA and mouse Y, since that's + * what is used in time scale */ + t->center[0] = t->scene->r.cfra; + projectIntView(t, t->center, center); + center[1] = t->imval[1]; + + /* force a reinit with the center2d used here */ + initMouseInput(t, &t->mouse, center, t->imval); + initMouseInputMode(t, &t->mouse, INPUT_SPRING_FLIP); t->flag |= T_NULL_ONE; |