From 333feea6e9450379f5314f327cf1ac1aef6d8a07 Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Mon, 31 Aug 2015 21:37:38 +0300 Subject: Fix T45258, impossible to select brush when removing it from 2d painting. Also system added a brush every time it found no paint brush in the system which is not what we would want. Solution: * Brush panel stays visible always, regardless of whether there is a brush or not. * We search for first available brush when we find no brush in paint struct instead of always generating a new one. * Generating and searching for a brush take a mode argument now. Needed some refactoring to users of BKE_paint_init as well. * Did some style cleanups for paint mode enums. Patch is big but it's mostly argument refactoring. --- source/blender/editors/sculpt_paint/paint_ops.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender/editors/sculpt_paint/paint_ops.c') diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c index eebd49895ef..05eda4da63b 100644 --- a/source/blender/editors/sculpt_paint/paint_ops.c +++ b/source/blender/editors/sculpt_paint/paint_ops.c @@ -66,11 +66,12 @@ static int brush_add_exec(bContext *C, wmOperator *UNUSED(op)) Paint *paint = BKE_paint_get_active_from_context(C); Brush *br = BKE_paint_brush(paint); Main *bmain = CTX_data_main(C); + PaintMode mode = BKE_paintmode_get_active_from_context(C); if (br) br = BKE_brush_copy(br); else - br = BKE_brush_add(bmain, "Brush"); + br = BKE_brush_add(bmain, "Brush", BKE_paint_object_mode_from_paint_mode(mode)); BKE_paint_brush_set(paint, br); @@ -201,11 +202,11 @@ static int palette_color_add_exec(bContext *C, wmOperator *UNUSED(op)) color = BKE_palette_color_add(palette); palette->active_color = BLI_listbase_count(&palette->colors) - 1; - if (ELEM(mode, PAINT_TEXTURE_PROJECTIVE, PAINT_TEXTURE_2D, PAINT_VERTEX)) { + if (ELEM(mode, ePaintTextureProjective, ePaintTexture2D, ePaintVertex)) { copy_v3_v3(color->rgb, BKE_brush_color_get(scene, brush)); color->value = 0.0; } - else if (mode == PAINT_WEIGHT) { + else if (mode == ePaintWeight) { zero_v3(color->rgb); color->value = brush->weight; } @@ -431,9 +432,8 @@ static int brush_generic_tool_set(Main *bmain, Paint *paint, const int tool, brush = brush_tool_cycle(bmain, brush_orig, tool, tool_offset, ob_mode); if (!brush && brush_tool(brush_orig, tool_offset) != tool && create_missing) { - brush = BKE_brush_add(bmain, tool_name); + brush = BKE_brush_add(bmain, tool_name, ob_mode); brush_tool_set(brush, tool_offset, tool); - brush->ob_mode = ob_mode; brush->toggle_brush = brush_orig; } -- cgit v1.2.3