Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Vazquez <blendergit@gmail.com>2020-03-24 18:16:30 +0300
committerAntonio Vazquez <blendergit@gmail.com>2020-03-24 18:16:47 +0300
commit7ac5c5b08cdda9f05f17f27d2ffbeb57929eef1e (patch)
tree163286cd4a73e505fb47269ce255950b115bf23b /source/blender/editors/gpencil
parentd626ced6f1fe8284737aecdabe70b48a42563b75 (diff)
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
Diffstat (limited to 'source/blender/editors/gpencil')
-rw-r--r--source/blender/editors/gpencil/gpencil_data.c9
1 files changed, 8 insertions, 1 deletions
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);
+ }
}
}