[Bf-blender-cvs] [0d57ab611c6] blender-v2.83-release: Fix T76851: GPencil brush is reset after change mode

Antonio Vazquez noreply at git.blender.org
Mon May 18 17:04:21 CEST 2020


Commit: 0d57ab611c643d75600ac961cdb807b95146c716
Author: Antonio Vazquez
Date:   Mon May 18 17:04:00 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rB0d57ab611c643d75600ac961cdb807b95146c716

Fix T76851: GPencil brush is reset after change mode

This was introduced by commit rBe58525706328

Now, the brush is not changed when change mode.

Thanks @Alaska for helping with this bug.

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

M	source/blender/blenkernel/intern/brush.c

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

diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index b7ba3a791e1..ab107218214 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -1049,7 +1049,7 @@ void BKE_brush_gpencil_paint_presets(Main *bmain, ToolSettings *ts, const bool r
   bool r_new = false;
 
   Paint *paint = &ts->gp_paint->paint;
-
+  Brush *brush_prev = paint->brush;
   Brush *brush, *deft_draw;
   /* Airbrush brush. */
   brush = gpencil_brush_ensure(bmain, ts, "Airbrush", OB_MODE_PAINT_GPENCIL, &r_new);
@@ -1137,7 +1137,9 @@ void BKE_brush_gpencil_paint_presets(Main *bmain, ToolSettings *ts, const bool r
   }
 
   /* Set default Draw brush. */
-  BKE_paint_brush_set(paint, deft_draw);
+  if (reset || brush_prev == NULL) {
+    BKE_paint_brush_set(paint, deft_draw);
+  }
 }
 
 /* Create a set of grease pencil Vertex Paint presets. */
@@ -1146,7 +1148,7 @@ void BKE_brush_gpencil_vertex_presets(Main *bmain, ToolSettings *ts, const bool
   bool r_new = false;
 
   Paint *vertexpaint = &ts->gp_vertexpaint->paint;
-
+  Brush *brush_prev = vertexpaint->brush;
   Brush *brush, *deft_vertex;
   /* Vertex Draw brush. */
   brush = gpencil_brush_ensure(bmain, ts, "Vertex Draw", OB_MODE_VERTEX_GPENCIL, &r_new);
@@ -1177,7 +1179,9 @@ void BKE_brush_gpencil_vertex_presets(Main *bmain, ToolSettings *ts, const bool
   }
 
   /* Set default Vertex brush. */
-  BKE_paint_brush_set(vertexpaint, deft_vertex);
+  if (reset || brush_prev == NULL) {
+    BKE_paint_brush_set(vertexpaint, deft_vertex);
+  }
 }
 
 /* Create a set of grease pencil Sculpt Paint presets. */
@@ -1186,6 +1190,7 @@ void BKE_brush_gpencil_sculpt_presets(Main *bmain, ToolSettings *ts, const bool
   bool r_new = false;
 
   Paint *sculptpaint = &ts->gp_sculptpaint->paint;
+  Brush *brush_prev = sculptpaint->brush;
   Brush *brush, *deft_sculpt;
 
   /* Smooth brush. */
@@ -1244,7 +1249,9 @@ void BKE_brush_gpencil_sculpt_presets(Main *bmain, ToolSettings *ts, const bool
   }
 
   /* Set default brush. */
-  BKE_paint_brush_set(sculptpaint, deft_sculpt);
+  if (reset || brush_prev == NULL) {
+    BKE_paint_brush_set(sculptpaint, deft_sculpt);
+  }
 }
 
 /* Create a set of grease pencil Weight Paint presets. */
@@ -1253,7 +1260,7 @@ void BKE_brush_gpencil_weight_presets(Main *bmain, ToolSettings *ts, const bool
   bool r_new = false;
 
   Paint *weightpaint = &ts->gp_weightpaint->paint;
-
+  Brush *brush_prev = weightpaint->brush;
   Brush *brush, *deft_weight;
   /* Vertex Draw brush. */
   brush = gpencil_brush_ensure(bmain, ts, "Draw Weight", OB_MODE_WEIGHT_GPENCIL, &r_new);
@@ -1263,7 +1270,9 @@ void BKE_brush_gpencil_weight_presets(Main *bmain, ToolSettings *ts, const bool
   deft_weight = brush; /* save default brush. */
 
   /* Set default brush. */
-  BKE_paint_brush_set(weightpaint, deft_weight);
+  if (reset || brush_prev == NULL) {
+    BKE_paint_brush_set(weightpaint, deft_weight);
+  }
 }
 
 struct Brush *BKE_brush_first_search(struct Main *bmain, const eObjectMode ob_mode)



More information about the Bf-blender-cvs mailing list