diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-11-03 08:52:06 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-11-03 08:52:06 +0300 |
commit | 888a0735eee5fbe05fc60d8755d83974a2f74680 (patch) | |
tree | 3ff8fb4e0712303b36ec7ddf9cbd6bf0c072e35e /source/blender/editors/gpencil/gpencil_edit.c | |
parent | 13c3c9b22fd8453d4418577efbc2ccb93209e92e (diff) |
Tool System: validate tool slots when setting modes
Needed for entering paint modes on new scenes.
Diffstat (limited to 'source/blender/editors/gpencil/gpencil_edit.c')
-rw-r--r-- | source/blender/editors/gpencil/gpencil_edit.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c index 7b2eb7d6ecd..d8580f872f4 100644 --- a/source/blender/editors/gpencil/gpencil_edit.c +++ b/source/blender/editors/gpencil/gpencil_edit.c @@ -281,6 +281,8 @@ static int gpencil_paintmode_toggle_exec(bContext *C, wmOperator *op) const bool back = RNA_boolean_get(op->ptr, "back"); struct wmMsgBus *mbus = CTX_wm_message_bus(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); bGPdata *gpd = ED_gpencil_data_get_active(C); ToolSettings *ts = CTX_data_tool_settings(C); @@ -315,11 +317,14 @@ static int gpencil_paintmode_toggle_exec(bContext *C, wmOperator *op) ob->mode = mode; } - /* be sure we have brushes */ - Paint *paint = BKE_brush_get_gpencil_paint(ts); - /* if not exist, create a new one */ - if (paint->brush == NULL) { - BKE_brush_gpencil_presets(C); + if (mode == OB_MODE_GPENCIL_PAINT) { + /* be sure we have brushes */ + Paint *paint = BKE_brush_get_gpencil_paint(ts); + /* if not exist, create a new one */ + if (paint->brush == NULL) { + BKE_brush_gpencil_presets(C); + } + BKE_paint_toolslots_brush_validate(bmain, scene, &ts->gp_paint->paint); } /* setup other modes */ |