From 7ac5c5b08cdda9f05f17f27d2ffbeb57929eef1e Mon Sep 17 00:00:00 2001 From: Antonio Vazquez Date: Tue, 24 Mar 2020 16:16:30 +0100 Subject: 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 --- source/blender/editors/gpencil/gpencil_data.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to '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); + } } } -- cgit v1.2.3