[Bf-blender-cvs] [eeefea86cdd] master: Fix T63054: Crash on "Grease Pencil Unlink"

Antonioya noreply at git.blender.org
Thu Mar 28 17:07:57 CET 2019


Commit: eeefea86cddbfea47e8026e3a10210a43e70fc90
Author: Antonioya
Date:   Thu Mar 28 17:07:49 2019 +0100
Branches: master
https://developer.blender.org/rBeeefea86cddbfea47e8026e3a10210a43e70fc90

Fix T63054: Crash on "Grease Pencil Unlink"

This operator was used only by annotations and it was part of the old legacy code.

Now, the operator is limited to annotations and cannot be used with grease pencil objects.

Also changed the tooltip to clarify it's only for annotations.

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

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 a8b31b20182..2d5ec4c5055 100644
--- a/source/blender/editors/gpencil/gpencil_data.c
+++ b/source/blender/editors/gpencil/gpencil_data.c
@@ -175,6 +175,13 @@ static bool gp_data_unlink_poll(bContext *C)
 {
 	bGPdata **gpd_ptr = ED_gpencil_data_get_pointers(C, NULL);
 
+	/* only unlink annotation datablocks */
+	if (gpd_ptr != NULL) {
+		bGPdata *gpd = (*gpd_ptr);
+		if ((gpd->flag & GP_DATA_ANNOTATIONS) == 0) {
+			return false;
+		}
+	}
 	/* if we have access to some active data, make sure there's a datablock before enabling this */
 	return (gpd_ptr && *gpd_ptr);
 }
@@ -206,9 +213,9 @@ static int gp_data_unlink_exec(bContext *C, wmOperator *op)
 void GPENCIL_OT_data_unlink(wmOperatorType *ot)
 {
 	/* identifiers */
-	ot->name = "Grease Pencil Unlink";
+	ot->name = "Annotation Unlink";
 	ot->idname = "GPENCIL_OT_data_unlink";
-	ot->description = "Unlink active Grease Pencil data-block";
+	ot->description = "Unlink active Annotation data-block";
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
 	/* callbacks */



More information about the Bf-blender-cvs mailing list