From 2f0e350ffd0ce1bf7ef617a678178dbfa185d3d0 Mon Sep 17 00:00:00 2001 From: Germano Cavalcante Date: Mon, 23 Aug 2021 09:46:30 -0300 Subject: Fix T90872: Dopesheet messes up keyframe handles Y coordinate was not being constrained. Caused by {rBb0d9e6797fb866e7a58876c7977c98a190070310} --- source/blender/editors/transform/transform_convert_action.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'source/blender/editors/transform') 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) { -- cgit v1.2.3