diff options
author | Ton Roosendaal <ton@blender.org> | 2011-01-15 17:07:11 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2011-01-15 17:07:11 +0300 |
commit | 384025f1a0ceaadfd1d623cc61f25d7426301a5b (patch) | |
tree | 792051d3d2978de5896875aa7989b0fb78855383 /source/blender/editors/mesh/loopcut.c | |
parent | 4cb79661eb4b69b66a5c5c980790db360c7d7332 (diff) |
Bugfix #25636
On using loop-selects, the active vertex got cleared, it could still
simply indicate one of the vertices of indicated edge to become active.
That keeps the Ui for vertex-groups drawing correct, for example.
Also made loop-ring select store active edge for tools, like the loop-select.
Diffstat (limited to 'source/blender/editors/mesh/loopcut.c')
-rw-r--r-- | source/blender/editors/mesh/loopcut.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/editors/mesh/loopcut.c b/source/blender/editors/mesh/loopcut.c index 42df009bb16..933aed0a758 100644 --- a/source/blender/editors/mesh/loopcut.c +++ b/source/blender/editors/mesh/loopcut.c @@ -272,9 +272,12 @@ static void ringsel_finish(bContext *C, wmOperator *op) int cuts= (lcd->do_cut)? RNA_int_get(op->ptr,"number_cuts"): 0; if (lcd->eed) { + EditMesh *em = BKE_mesh_get_editmesh(lcd->ob->data); + edgering_sel(lcd, cuts, 1); + if (lcd->do_cut) { - EditMesh *em = BKE_mesh_get_editmesh(lcd->ob->data); + esubdivideflag(lcd->ob, em, SELECT, 0.0f, 0.0f, 0, cuts, 0, SUBDIV_SELECT_LOOPCUT); /* force edge slide to edge select mode in in face select mode */ @@ -293,6 +296,13 @@ static void ringsel_finish(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_GEOM|ND_DATA, lcd->ob->data); } else { + + /* sets as active, useful for other tools */ + if(em->selectmode & SCE_SELECT_VERTEX) + EM_store_selection(em, lcd->eed->v1, EDITVERT); + if(em->selectmode & SCE_SELECT_EDGE) + EM_store_selection(em, lcd->eed, EDITEDGE); + EM_selectmode_flush(lcd->em); WM_event_add_notifier(C, NC_GEOM|ND_SELECT, lcd->ob->data); } |