[Bf-blender-cvs] [cae97709549] master: Cleanup: rename gesture mode to is_active

Campbell Barton noreply at git.blender.org
Mon Oct 16 05:26:20 CEST 2017


Commit: cae97709549224a94ec71a4de5f159af1d876f0a
Author: Campbell Barton
Date:   Mon Oct 16 13:01:09 2017 +1100
Branches: master
https://developer.blender.org/rBcae97709549224a94ec71a4de5f159af1d876f0a

Cleanup: rename gesture mode to is_active

Wasn't obvious what this did at a glance.

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

M	source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c
M	source/blender/windowmanager/WM_types.h
M	source/blender/windowmanager/intern/wm_gesture.c
M	source/blender/windowmanager/intern/wm_operators.c

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

diff --git a/source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c b/source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c
index 9483a12aa6a..3af1da3edce 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c
@@ -817,7 +817,7 @@ static int paint_weight_gradient_invoke(bContext *C, wmOperator *op, const wmEve
 			/* TODO, hardcoded, extend WM_gesture_straightline_ */
 			if (event->type == LEFTMOUSE && event->val == KM_PRESS) {
 				wmGesture *gesture = op->customdata;
-				gesture->mode = 1;
+				gesture->is_active = true;
 			}
 		}
 	}
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index f6049f10378..1c8d12973c6 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -409,11 +409,14 @@ typedef struct wmNotifier {
 typedef struct wmGesture {
 	struct wmGesture *next, *prev;
 	int event_type;	/* event->type */
-	int mode;		/* for modal callback */
 	int type;		/* gesture type define */
 	int swinid;		/* initial subwindow id where it started */
 	int points;		/* optional, amount of points stored */
 	int size;		/* optional, maximum amount of points stored */
+
+	/* For modal operators which may be running idle, waiting for an event to activate the gesture.
+	 * Typically this is set when the user is click-dragging the gesture (border and circle select for eg). */
+	uint is_active : 1;
 	
 	void *customdata;
 	/* customdata for border is a recti */
diff --git a/source/blender/windowmanager/intern/wm_gesture.c b/source/blender/windowmanager/intern/wm_gesture.c
index cc48b162352..311b501a179 100644
--- a/source/blender/windowmanager/intern/wm_gesture.c
+++ b/source/blender/windowmanager/intern/wm_gesture.c
@@ -377,10 +377,12 @@ void wm_gesture_draw(wmWindow *win)
 		else if (gt->type == WM_GESTURE_CIRCLE)
 			wm_gesture_draw_circle(gt);
 		else if (gt->type == WM_GESTURE_CROSS_RECT) {
-			if (gt->mode == 1)
+			if (gt->is_active) {
 				wm_gesture_draw_rect(gt);
-			else
+			}
+			else {
 				wm_gesture_draw_cross(win, gt);
+			}
 		}
 		else if (gt->type == WM_GESTURE_LINES)
 			wm_gesture_draw_lasso(win, gt, false);
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index ae5a8319b00..330a18eeda5 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -2336,7 +2336,7 @@ int WM_border_select_modal(bContext *C, wmOperator *op, const wmEvent *event)
 	if (event->type == MOUSEMOVE) {
 		wm_subwindow_origin_get(CTX_wm_window(C), gesture->swinid, &sx, &sy);
 
-		if (gesture->type == WM_GESTURE_CROSS_RECT && gesture->mode == 0) {
+		if (gesture->type == WM_GESTURE_CROSS_RECT && gesture->is_active == false) {
 			rect->xmin = rect->xmax = event->x - sx;
 			rect->ymin = rect->ymax = event->y - sy;
 		}
@@ -2351,8 +2351,8 @@ int WM_border_select_modal(bContext *C, wmOperator *op, const wmEvent *event)
 	else if (event->type == EVT_MODAL_MAP) {
 		switch (event->val) {
 			case GESTURE_MODAL_BEGIN:
-				if (gesture->type == WM_GESTURE_CROSS_RECT && gesture->mode == 0) {
-					gesture->mode = 1;
+				if (gesture->type == WM_GESTURE_CROSS_RECT && gesture->is_active == false) {
+					gesture->is_active = true;
 					wm_gesture_tag_redraw(C);
 				}
 				break;
@@ -2447,8 +2447,9 @@ int WM_gesture_circle_modal(bContext *C, wmOperator *op, const wmEvent *event)
 
 		wm_gesture_tag_redraw(C);
 
-		if (gesture->mode)
+		if (gesture->is_active) {
 			gesture_circle_apply(C, op);
+		}
 	}
 	else if (event->type == EVT_MODAL_MAP) {
 		float fac;
@@ -2481,7 +2482,7 @@ int WM_gesture_circle_modal(bContext *C, wmOperator *op, const wmEvent *event)
 				if (event->val != GESTURE_MODAL_NOP) {
 					/* apply first click */
 					gesture_circle_apply(C, op);
-					gesture->mode = 1;
+					gesture->is_active = true;
 					wm_gesture_tag_redraw(C);
 				}
 				break;
@@ -2881,7 +2882,7 @@ int WM_gesture_straightline_modal(bContext *C, wmOperator *op, const wmEvent *ev
 	if (event->type == MOUSEMOVE) {
 		wm_subwindow_origin_get(CTX_wm_window(C), gesture->swinid, &sx, &sy);
 		
-		if (gesture->mode == 0) {
+		if (gesture->is_active == false) {
 			rect->xmin = rect->xmax = event->x - sx;
 			rect->ymin = rect->ymax = event->y - sy;
 		}
@@ -2896,8 +2897,8 @@ int WM_gesture_straightline_modal(bContext *C, wmOperator *op, const wmEvent *ev
 	else if (event->type == EVT_MODAL_MAP) {
 		switch (event->val) {
 			case GESTURE_MODAL_BEGIN:
-				if (gesture->mode == 0) {
-					gesture->mode = 1;
+				if (gesture->is_active == false) {
+					gesture->is_active = true;
 					wm_gesture_tag_redraw(C);
 				}
 				break;



More information about the Bf-blender-cvs mailing list