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.
This commit is contained in:
2011-01-15 14:07:11 +00:00
parent 4cb79661eb
commit 384025f1a0
2 changed files with 16 additions and 3 deletions

View File

@@ -2078,8 +2078,11 @@ static void mouse_mesh_loop(bContext *C, short mval[2], short extend, short ring
// if (EM_texFaceCheck())
/* sets as active, useful for other tools */
if(select && em->selectmode & SCE_SELECT_EDGE) {
EM_store_selection(em, eed, EDITEDGE);
if(select) {
if(em->selectmode & SCE_SELECT_VERTEX)
EM_store_selection(em, eed->v1, EDITVERT);
if(em->selectmode & SCE_SELECT_EDGE)
EM_store_selection(em, eed, EDITEDGE);
}
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc.obedit->data);

View File

@@ -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);
}