diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py index c88aff33fd3..05a6a5fa7c7 100644 --- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py +++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py @@ -5223,8 +5223,10 @@ def km_3d_view_tool_select_circle(params): {"items": [ ("view3d.select_circle", {"type": params.tool_mouse, "value": 'PRESS'}, {"properties": [("wait_for_input", False)]}), + ("view3d.select_circle", {"type": params.tool_mouse, "value": 'PRESS', "shift": True}, + {"properties": [("wait_for_input", False), ("mode", 'ADD')]}), ("view3d.select_circle", {"type": params.tool_mouse, "value": 'PRESS', "ctrl": True}, - {"properties": [("wait_for_input", False), ("deselect", True)]}), + {"properties": [("wait_for_input", False), ("mode", 'SUB')]}), ]}, ) diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py index 35d6ee5a8bc..4dfaa598c2e 100644 --- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py +++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py @@ -342,6 +342,7 @@ class _defs_view3d_select: def circle(): def draw_settings(context, layout, tool): props = tool.operator_properties("view3d.select_circle") + layout.prop(props, "mode", expand=True) layout.prop(props, "radius") def draw_cursor(context, tool, xy): diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 70ff6065007..bf30f903929 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -3353,8 +3353,7 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op) ViewContext vc; const bool is_first = (op->customdata && (((wmGesture *)op->customdata)->is_active_prev == false)); const int radius = RNA_int_get(op->ptr, "radius"); - const bool select = !RNA_boolean_get(op->ptr, "deselect"); - eSelectOp sel_op = select ? SEL_OP_ADD : SEL_OP_SUB; + eSelectOp sel_op = RNA_enum_get(op->ptr, "mode"); const int mval[2] = {RNA_int_get(op->ptr, "x"), RNA_int_get(op->ptr, "y")}; @@ -3436,7 +3435,8 @@ void VIEW3D_OT_select_circle(wmOperatorType *ot) ot->flag = OPTYPE_UNDO; /* properties */ - WM_operator_properties_gesture_circle_select(ot); + WM_operator_properties_gesture_circle(ot); + WM_operator_properties_select_operation_simple(ot); } /** \} */