[Bf-blender-cvs] [761c937a8eb] greasepencil-object: GP: Primitive: RMB does not cancel previous strokes

Charlie Jolly noreply at git.blender.org
Tue Dec 18 17:17:59 CET 2018


Commit: 761c937a8eb89d7512ab1ccb147f8d248b8905dd
Author: Charlie Jolly
Date:   Tue Dec 18 16:17:38 2018 +0000
Branches: greasepencil-object
https://developer.blender.org/rB761c937a8eb89d7512ab1ccb147f8d248b8905dd

GP: Primitive: RMB does not cancel previous strokes

Based on GP team feedback.

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

M	source/blender/editors/gpencil/gpencil_primitive.c

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

diff --git a/source/blender/editors/gpencil/gpencil_primitive.c b/source/blender/editors/gpencil/gpencil_primitive.c
index 152d6cd70a9..709c90631af 100644
--- a/source/blender/editors/gpencil/gpencil_primitive.c
+++ b/source/blender/editors/gpencil/gpencil_primitive.c
@@ -724,7 +724,8 @@ static void gp_primitive_update_strokes(bContext *C, tGPDprimitive *tgpi)
 	/* compute screen-space coordinates for points */
 	tGPspoint *points2D = tgpi->points;
 
-	switch (tgpi->type) {
+	if (tgpi->tot_edges > 1) {
+		switch (tgpi->type) {
 		case GP_STROKE_BOX:
 			gp_primitive_rectangle(tgpi, points2D);
 			break;
@@ -744,6 +745,7 @@ static void gp_primitive_update_strokes(bContext *C, tGPDprimitive *tgpi)
 			gp_primitive_bezier(tgpi, points2D);
 		default:
 			break;
+		}
 	}
 
 	/* convert screen-coordinates to 3D coordinates */
@@ -914,7 +916,7 @@ static void gp_primitive_update_strokes(bContext *C, tGPDprimitive *tgpi)
 				pressure -= brush->gpencil_settings->draw_random_press * p2d->rnd[0];
 			}
 			else {
-				pressure -= brush->gpencil_settings->draw_random_press * p2d->rnd[0];
+				pressure += brush->gpencil_settings->draw_random_press * p2d->rnd[0];
 			}
 		}
 
@@ -1460,8 +1462,11 @@ static int gpencil_primitive_modal(bContext *C, wmOperator *op, const wmEvent *e
 		}
 		case RIGHTMOUSE:
 		{
-			if (tgpi->flag == IN_CURVE_EDIT || (tgpi->flag == IN_PROGRESS && tgpi->tot_stored_edges > 0)) {
+			/* exception to cancel current stroke when we have previous strokes in buffer */
+			if (tgpi->tot_stored_edges > 0) {
 				tgpi->flag = IDLE;
+				tgpi->tot_edges = 0;
+				gp_primitive_update_strokes(C, tgpi);
 				gpencil_primitive_interaction_end(C, op, win, tgpi);
 				/* done! */
 				return OPERATOR_FINISHED;



More information about the Bf-blender-cvs mailing list