[Bf-blender-cvs] [7ac5c5b08cd] master: GPencil: Add blank frame when add layer in Dopesheet

Antonio Vazquez noreply at git.blender.org
Tue Mar 24 16:16:52 CET 2020


Commit: 7ac5c5b08cdda9f05f17f27d2ffbeb57929eef1e
Author: Antonio Vazquez
Date:   Tue Mar 24 16:16:30 2020 +0100
Branches: master
https://developer.blender.org/rB7ac5c5b08cdda9f05f17f27d2ffbeb57929eef1e

GPencil: Add blank frame when add layer in Dopesheet

When use the dopesheet add layer operator a new blank frame is created. It's very strange to create a layer and don't see anything in dopesheet.

If the layer is added in properties, the frame is not created.

Reviewed by: @pepeland @mendio

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

M	source/blender/editors/gpencil/gpencil_data.c

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

diff --git a/source/blender/editors/gpencil/gpencil_data.c b/source/blender/editors/gpencil/gpencil_data.c
index 627bc46d06c..f96b7c172a2 100644
--- a/source/blender/editors/gpencil/gpencil_data.c
+++ b/source/blender/editors/gpencil/gpencil_data.c
@@ -211,9 +211,12 @@ void GPENCIL_OT_data_unlink(wmOperatorType *ot)
 static int gp_layer_add_exec(bContext *C, wmOperator *op)
 {
   const bool is_annotation = STREQ(op->idname, "GPENCIL_OT_layer_annotation_add");
+  ScrArea *sa = CTX_wm_area(C);
+  const bool is_dopesheet = (sa->spacetype == SPACE_ACTION);
 
   PointerRNA gpd_owner = {NULL};
   Main *bmain = CTX_data_main(C);
+  Scene *scene = CTX_data_scene(C);
   bGPdata *gpd = NULL;
 
   if (is_annotation) {
@@ -238,7 +241,11 @@ static int gp_layer_add_exec(bContext *C, wmOperator *op)
     Object *ob = CTX_data_active_object(C);
     if ((ob != NULL) && (ob->type == OB_GPENCIL)) {
       gpd = (bGPdata *)ob->data;
-      BKE_gpencil_layer_addnew(gpd, DATA_("GP_Layer"), true);
+      bGPDlayer *gpl = BKE_gpencil_layer_addnew(gpd, DATA_("GP_Layer"), true);
+      /* In dopesheet add a new frame. */
+      if ((gpl != NULL) && (is_dopesheet)) {
+        gpl->actframe = BKE_gpencil_layer_frame_get(gpl, CFRA, GP_GETFRAME_ADD_NEW);
+      }
     }
   }



More information about the Bf-blender-cvs mailing list