Commit: 6d297c35c8658b3e0579767d4a9fd3b761e81a61 Author: Amelie Fondevilla Date: Mon Feb 6 10:22:57 2023 +0100 Branches: master https://developer.blender.org/rB6d297c35c8658b3e0579767d4a9fd3b761e81a61
Fix T104371: GPencil merge down layer duplicates wrong frame The merge down operator was sometimes copying the wrong frame, which altered the animation. While merging the layers, it is sometimes needed to duplicate a keyframe, when the lowest layer does not have a keyframe but the highest layer does. Instead of duplicating the previous keyframe of the lowest layer, the code was actually duplicating the active frame of the layer which was the current frame in the timeline. This patch fixes the issue by setting the previous keyframe of the layer as its active frame before duplication. Related issue: T104371. Differential Revision: https://developer.blender.org/D17214 =================================================================== M source/blender/blenkernel/intern/gpencil.c =================================================================== diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index b77f43276e7..6405ce06a5b 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -1273,6 +1273,10 @@ bGPDframe *BKE_gpencil_layer_frame_get(bGPDlayer *gpl, int cframe, eGP_GetFrame_ gpl->actframe = gpf; } else if (addnew == GP_GETFRAME_ADD_COPY) { + /* The frame_addcopy function copies the active frame of gpl, + so we need to set the active frame before copying. + */ + gpl->actframe = gpf; gpl->actframe = BKE_gpencil_frame_addcopy(gpl, cframe); } else { @@ -1300,6 +1304,10 @@ bGPDframe *BKE_gpencil_layer_frame_get(bGPDlayer *gpl, int cframe, eGP_GetFrame_ gpl->actframe = gpf; } else if (addnew == GP_GETFRAME_ADD_COPY) { + /* The frame_addcopy function copies the active frame of gpl; + so we need to set the active frame before copying. + */ + gpl->actframe = gpf; gpl->actframe = BKE_gpencil_frame_addcopy(gpl, cframe); } else { _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs