diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-02-07 16:47:17 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-02-07 16:47:17 +0400 |
commit | c4542acc8b690a4a3dc558f3c19d4a42f9353400 (patch) | |
tree | a81341fc58f97decd349e31ed4f9dd93f3e5fe3a /source/blender/editors/mesh | |
parent | 77ab18ebc345d670c65a4f5d2aa65c6aa6d13414 (diff) |
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.
Diffstat (limited to 'source/blender/editors/mesh')
-rw-r--r-- | source/blender/editors/mesh/loopcut.c | 10 |
1 files changed, 9 insertions, 1 deletions
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; } |