[Bf-blender-cvs] [2f0e350ffd0] master: Fix T90872: Dopesheet messes up keyframe handles

Germano Cavalcante noreply at git.blender.org
Mon Aug 23 14:49:21 CEST 2021


Commit: 2f0e350ffd0ce1bf7ef617a678178dbfa185d3d0
Author: Germano Cavalcante
Date:   Mon Aug 23 09:46:30 2021 -0300
Branches: master
https://developer.blender.org/rB2f0e350ffd0ce1bf7ef617a678178dbfa185d3d0

Fix T90872: Dopesheet messes up keyframe handles

Y coordinate was not being constrained.

Caused by {rBb0d9e6797fb866e7a58876c7977c98a190070310}

===================================================================

M	source/blender/editors/transform/transform_convert_action.c

===================================================================

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) {



More information about the Bf-blender-cvs mailing list