Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-03-05 14:26:45 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-03-05 14:26:45 +0300
commit8d8d113b7379b96d8cd9440f4e1f87524a418fef (patch)
treeecc4ac8f59c846918fd280db82ee87dc15c92e4d /source/blender/editors/mask
parent0ae6747300a74daf14482f9ca89caffa9e503454 (diff)
Tool System: use set/add/subtract for all circle select operators
This applies changes from the 3D view circle select to other operators.
Diffstat (limited to 'source/blender/editors/mask')
-rw-r--r--source/blender/editors/mask/mask_select.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/source/blender/editors/mask/mask_select.c b/source/blender/editors/mask/mask_select.c
index 3f0a3032cc1..2cab5d673ed 100644
--- a/source/blender/editors/mask/mask_select.c
+++ b/source/blender/editors/mask/mask_select.c
@@ -612,8 +612,6 @@ static int circle_select_exec(bContext *C, wmOperator *op)
const int y = RNA_int_get(op->ptr, "y");
const int radius = RNA_int_get(op->ptr, "radius");
- const bool select = !RNA_boolean_get(op->ptr, "deselect");
-
/* compute ellipse and position in unified coordinates */
ED_mask_get_size(sa, &width, &height);
ED_mask_zoom(sa, ar, &zoomx, &zoomy);
@@ -624,6 +622,15 @@ static int circle_select_exec(bContext *C, wmOperator *op)
ED_mask_point_pos(sa, ar, x, y, &offset[0], &offset[1]);
+ const eSelectOp sel_op = ED_select_op_modal(
+ RNA_enum_get(op->ptr, "mode"), WM_gesture_is_modal_first(op->customdata));
+ const bool select = (sel_op != SEL_OP_SUB);
+ if (SEL_OP_USE_PRE_DESELECT(sel_op)) {
+ ED_mask_select_toggle_all(mask, SEL_DESELECT);
+ ED_mask_select_flush_all(mask);
+ changed = true;
+ }
+
/* do actual selection */
for (masklay = mask->masklayers.first; masklay; masklay = masklay->next) {
MaskSpline *spline;
@@ -677,7 +684,8 @@ void MASK_OT_select_circle(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- WM_operator_properties_gesture_circle_select(ot);
+ WM_operator_properties_gesture_circle(ot);
+ WM_operator_properties_select_operation_simple(ot);
}
static int mask_select_linked_pick_invoke(bContext *C, wmOperator *op, const wmEvent *event)