[Bf-blender-cvs] [944812a1e8d] greasepencil-object: Fix problem when change mode if no brushes
Antonio Vazquez
noreply at git.blender.org
Mon Mar 12 10:00:00 CET 2018
Commit: 944812a1e8da3f51cdd3f5cb528dcb3b6373fc54
Author: Antonio Vazquez
Date: Sun Mar 11 20:12:18 2018 +0100
Branches: greasepencil-object
https://developer.blender.org/rB944812a1e8da3f51cdd3f5cb528dcb3b6373fc54
Fix problem when change mode if no brushes
When chnage mode, create the default brushes if they are missing.
===================================================================
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 d7450fb2ba1..9c76aa94b9c 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -58,6 +58,7 @@
#include "BKE_main.h"
#include "BKE_context.h"
#include "BKE_global.h"
+#include "BKE_brush.h"
#include "BKE_gpencil.h"
#include "BKE_paint.h"
#include "BKE_library.h"
@@ -189,6 +190,8 @@ static int gpencil_paintmode_toggle_exec(bContext *C, wmOperator *op)
WorkSpace *workspace = CTX_wm_workspace(C);
bGPdata *gpd = ED_gpencil_data_get_active(C);
+ ToolSettings *ts = CTX_data_tool_settings(C);
+
bool is_object = false;
short mode;
/* if using a gpencil object, use this datablock */
@@ -220,6 +223,17 @@ static int gpencil_paintmode_toggle_exec(bContext *C, wmOperator *op)
workspace->object_mode = mode;
}
+ /* be sure we have brushes */
+ if (ts->gp_paint == NULL) {
+ ts->gp_paint = MEM_callocN(sizeof(GpPaint), "GpPaint");
+ }
+
+ Paint *paint = &ts->gp_paint->paint;
+ /* if not exist, create a new one */
+ if (paint->brush == NULL) {
+ BKE_brush_gpencil_presets(C);
+ }
+
/* setup other modes */
ED_gpencil_setup_modes(C, gpd, mode);
/* set cache as dirty */
More information about the Bf-blender-cvs
mailing list