From c4542acc8b690a4a3dc558f3c19d4a42f9353400 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 7 Feb 2012 12:47:17 +0000 Subject: Fix #30091: Shift-Ctrl-Alt-RMB problem in face mode Select Edge Rings with extension policy wasn't working properly in face selection mode because it's used to call Select Loop operator because edge rings can be selected only in verts/edges mode. On this call of another operator extension policy wasn't set to newly calling operator. Now Select Edge Rings still calls Select Loops (which is a bit nasty) but properly sets extension flag. --- source/blender/editors/mesh/loopcut.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'source/blender/editors/mesh') diff --git a/source/blender/editors/mesh/loopcut.c b/source/blender/editors/mesh/loopcut.c index 6ff62b16bde..c317eabd48a 100644 --- a/source/blender/editors/mesh/loopcut.c +++ b/source/blender/editors/mesh/loopcut.c @@ -380,8 +380,16 @@ static int ringsel_invoke (bContext *C, wmOperator *op, wmEvent *evt) lcd = op->customdata; if (lcd->em->selectmode == SCE_SELECT_FACE) { + PointerRNA props_ptr; + int extend = RNA_boolean_get(op->ptr, "extend"); + ringsel_exit(op); - WM_operator_name_call(C, "MESH_OT_loop_select", WM_OP_INVOKE_REGION_WIN, NULL); + + WM_operator_properties_create(&props_ptr, "MESH_OT_loop_select"); + RNA_boolean_set(&props_ptr, "extend", extend); + WM_operator_name_call(C, "MESH_OT_loop_select", WM_OP_INVOKE_REGION_WIN, &props_ptr); + WM_operator_properties_free(&props_ptr); + return OPERATOR_CANCELLED; } -- cgit v1.2.3