diff options
author | Germano Cavalcante <germano.costa@ig.com.br> | 2021-08-23 15:46:30 +0300 |
---|---|---|
committer | Germano Cavalcante <germano.costa@ig.com.br> | 2021-08-23 15:49:01 +0300 |
commit | 2f0e350ffd0ce1bf7ef617a678178dbfa185d3d0 (patch) | |
tree | e1378259d7dbe77f8eeafdc8673e38e3d835efd4 /source | |
parent | b4b3f518aa04877fb89605acb86ddbc8dc25656d (diff) |
Fix T90872: Dopesheet messes up keyframe handles
Y coordinate was not being constrained.
Caused by {rBb0d9e6797fb866e7a58876c7977c98a190070310}
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/transform/transform_convert_action.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/editors/transform/transform_convert_action.c b/source/blender/editors/transform/transform_convert_action.c index a5565b5fb88..075db30fa61 100644 --- a/source/blender/editors/transform/transform_convert_action.c +++ b/source/blender/editors/transform/transform_convert_action.c @@ -158,8 +158,9 @@ static void TimeToTransData( /* Setup #TransData. */ td->loc = time; /* Usually #td2d->loc is used here. But this is for when the original location is not float[3]. */ + copy_v3_v3(td->iloc, td->loc); td->val = time; - td->ival = td->iloc[0] = *(time); + td->ival = *(time); td->center[0] = td->ival; td->center[1] = ypos; @@ -615,7 +616,11 @@ void recalcData_actedit(TransInfo *t) if ((autosnap != SACTSNAP_OFF) && (t->state != TRANS_CANCEL) && !(td->flag & TD_NOTIMESNAP)) { transform_snap_anim_flush_data(t, td, autosnap, td->loc); } - transform_convert_flush_handle2D(td, td2d, 1.0f); + + /* Constrain Y. */ + td->loc[1] = td->iloc[1]; + + transform_convert_flush_handle2D(td, td2d, 0.0f); } if (ac.datatype != ANIMCONT_MASK) { |