[Bf-blender-cvs] [2d069b609b9] master: Fix T100999: GPencil Copy paste stroke(s) does not respect autokeying
Antonio Vazquez
noreply at git.blender.org
Mon Sep 12 12:13:19 CEST 2022
Commit: 2d069b609b98274b08ad0515a32457e4bd8f757e
Author: Antonio Vazquez
Date: Mon Sep 12 12:13:07 2022 +0200
Branches: master
https://developer.blender.org/rB2d069b609b98274b08ad0515a32457e4bd8f757e
Fix T100999: GPencil Copy paste stroke(s) does not respect autokeying
The operator was not checking the status of the
Autokey button.
===================================================================
M source/blender/editors/gpencil/gpencil_edit.c
===================================================================
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index 89ab9eda7f0..d28cefd4887 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -67,6 +67,7 @@
#include "ED_armature.h"
#include "ED_gpencil.h"
+#include "ED_keyframing.h"
#include "ED_object.h"
#include "ED_outliner.h"
#include "ED_screen.h"
@@ -1715,10 +1716,15 @@ static int gpencil_strokes_paste_exec(bContext *C, wmOperator *op)
/* Ensure we have a frame to draw into
* NOTE: Since this is an op which creates strokes,
- * we are obliged to add a new frame if one
- * doesn't exist already
+ * we resuse active frame or add a new frame if one
+ * doesn't exist already depending on REC button status.
*/
- gpf = BKE_gpencil_layer_frame_get(gpl, scene->r.cfra, GP_GETFRAME_ADD_NEW);
+ if (IS_AUTOKEY_ON(scene) || (gpl->actframe == NULL)) {
+ gpf = BKE_gpencil_layer_frame_get(gpl, scene->r.cfra, GP_GETFRAME_ADD_NEW);
+ }
+ else {
+ gpf = BKE_gpencil_layer_frame_get(gpl, scene->r.cfra, GP_GETFRAME_USE_PREV);
+ }
if (gpf) {
/* Create new stroke */
bGPDstroke *new_stroke = BKE_gpencil_stroke_duplicate(gps, true, true);
More information about the Bf-blender-cvs
mailing list