Two more wavk bugs (help he's pestering me!)
- 1702; edge selection should be evaluated properly before adding face
- 1704; crash in separate, two causes here:
- separate didnt make selection flags consistant (needed badly
there because of evil code)
- after adding quad (Fkey) the face was not selected, but its
vertices were... that can give bad bad crashes
This commit is contained in:
@@ -1311,6 +1311,8 @@ void separate_mesh(void)
|
||||
return;
|
||||
}
|
||||
|
||||
EM_selectmode_set(); // enforce full consistant selection flags
|
||||
|
||||
/* we are going to abuse the system as follows:
|
||||
* 1. add a duplicate object: this will be the new one, we remember old pointer
|
||||
* 2: then do a split if needed.
|
||||
|
||||
@@ -300,14 +300,18 @@ void addedgeface_mesh(void)
|
||||
if( (G.vd->lay & G.obedit->lay)==0 ) return;
|
||||
|
||||
/* how many selected ? */
|
||||
eve= em->verts.first;
|
||||
while(eve) {
|
||||
if(G.scene->selectmode & SCE_SELECT_EDGE) {
|
||||
/* in edge mode finding selected vertices means flushing down edge codes... */
|
||||
/* can't make face with only edge selection info... */
|
||||
EM_selectmode_set();
|
||||
}
|
||||
|
||||
for(eve= em->verts.first; eve; eve= eve->next) {
|
||||
if(eve->f & SELECT) {
|
||||
amount++;
|
||||
if(amount>4) break;
|
||||
neweve[amount-1]= eve;
|
||||
}
|
||||
eve= eve->next;
|
||||
}
|
||||
if(amount==2) {
|
||||
eed= addedgelist(neweve[0], neweve[1], NULL);
|
||||
@@ -357,6 +361,8 @@ void addedgeface_mesh(void)
|
||||
efa= addfacelist(neweve[0], neweve[2], neweve[3], neweve[1], NULL, NULL);
|
||||
else
|
||||
efa= addfacelist(neweve[0], neweve[2], neweve[1], neweve[3], NULL, NULL);
|
||||
|
||||
EM_select_face(efa, 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user