forked from bartvdbraak/blender
Wybren report #1709:
Deleting only-faces from fgon still draws wires hidden in editmode. Added extra: when mesh has no faces, it draws wire in solid view, also doesn't draw the 'fat' outline for selection.
This commit is contained in:
parent
02b2fc5ec8
commit
d149a79ad1
@ -3861,19 +3861,22 @@ static void drawSolidSelect(Object *ob, ListBase *lb)
|
||||
if(ob->type==OB_MESH) {
|
||||
/* optimal draw gives ugly outline, so we temporally disable it */
|
||||
Mesh *me= ob->data;
|
||||
DispList *dl= me->disp.first;
|
||||
DispListMesh *dlm=NULL;
|
||||
short flag= 0;
|
||||
|
||||
if(dl && dl->mesh) {
|
||||
dlm= dl->mesh;
|
||||
flag= dlm->flag & ME_OPT_EDGES;
|
||||
dlm->flag &= ~ME_OPT_EDGES;
|
||||
if(me->totface) {
|
||||
DispList *dl= me->disp.first;
|
||||
DispListMesh *dlm=NULL;
|
||||
short flag= 0;
|
||||
|
||||
if(dl && dl->mesh) {
|
||||
dlm= dl->mesh;
|
||||
flag= dlm->flag & ME_OPT_EDGES;
|
||||
dlm->flag &= ~ME_OPT_EDGES;
|
||||
}
|
||||
|
||||
drawmeshwire(ob);
|
||||
|
||||
if(dlm && flag) dlm->flag |= flag;
|
||||
}
|
||||
|
||||
drawmeshwire(ob);
|
||||
|
||||
if(dlm && flag) dlm->flag |= flag;
|
||||
}
|
||||
else drawDispListwire(lb);
|
||||
|
||||
@ -4197,7 +4200,7 @@ void draw_object(Base *base)
|
||||
|
||||
if(ob_from_decimator(ob)) drawDispListwire(&ob->disp);
|
||||
else if(dt==OB_BOUNDBOX) draw_bounding_volume(ob);
|
||||
else if(dt==OB_WIRE) drawmeshwire(ob);
|
||||
else if(dt==OB_WIRE || me->totface==0) drawmeshwire(ob);
|
||||
else if(ma && (ma->mode & MA_HALO)) drawmeshwire(ob);
|
||||
else if(me->tface) {
|
||||
if(G.f & G_FACESELECT || G.vd->drawtype==OB_TEXTURE) {
|
||||
|
@ -1594,6 +1594,12 @@ void EM_fgon_flags(void)
|
||||
BLI_addtail(&em->faces, efa);
|
||||
efa= efan;
|
||||
}
|
||||
|
||||
// remove fgon flags when edge not in fgon (anymore)
|
||||
for(eed= em->edges.first; eed; eed= eed->next) {
|
||||
if(eed->fgoni==0) eed->h &= ~EM_FGON;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user