From 404f4d7a011fd778733640c437e4c922f8f6d4a4 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Thu, 23 Sep 2004 22:17:52 +0000 Subject: [PATCH] Three bugfixes, thnx to irc testing! :) - separate crashed - wrong button for 'face dot' theme - deselect vertex on mouseclick didnt work --- source/blender/src/editmesh.c | 20 ++++++++++++++++++-- source/blender/src/editmesh_mods.c | 2 +- source/blender/src/space.c | 3 +++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/source/blender/src/editmesh.c b/source/blender/src/editmesh.c index a8497b15a1d..18f815ff15e 100644 --- a/source/blender/src/editmesh.c +++ b/source/blender/src/editmesh.c @@ -480,6 +480,8 @@ static void editMesh_set_hash(void) { EditEdge *eed; + G.editMesh->hashedgetab= NULL; + for(eed=G.editMesh->edges.first; eed; eed= eed->next) { if( findedgelist(eed->v1, eed->v2)==NULL ) insert_hashedge(eed); @@ -1267,6 +1269,7 @@ void separatemenu(void) void separate_mesh(void) { EditMesh *em = G.editMesh; + EditMesh emcopy; EditVert *eve, *v1; EditEdge *eed, *e1; EditFace *efa, *vl1; @@ -1374,7 +1377,13 @@ void separate_mesh(void) BASACT->flag &= ~SELECT; makeDispList(G.obedit); - free_editMesh(G.editMesh); + + /* we cannot free the original buffer... */ + emcopy= *G.editMesh; + emcopy.allverts= NULL; + emcopy.alledges= NULL; + emcopy.allfaces= NULL; + free_editMesh(&emcopy); em->verts= edve; em->edges= eded; @@ -1398,6 +1407,7 @@ void separate_mesh(void) void separate_mesh_loose(void) { EditMesh *em = G.editMesh; + EditMesh emcopy; EditVert *eve, *v1; EditEdge *eed, *e1; EditFace *efa, *vl1; @@ -1553,7 +1563,13 @@ void separate_mesh_loose(void) BASACT->flag &= ~SELECT; makeDispList(G.obedit); - free_editMesh(G.editMesh); + + /* we cannot free the original buffer... */ + emcopy= *G.editMesh; + emcopy.allverts= NULL; + emcopy.alledges= NULL; + emcopy.allfaces= NULL; + free_editMesh(&emcopy); em->verts= edve; em->edges= eded; diff --git a/source/blender/src/editmesh_mods.c b/source/blender/src/editmesh_mods.c index 595af2658e8..bcfa7c303c4 100644 --- a/source/blender/src/editmesh_mods.c +++ b/source/blender/src/editmesh_mods.c @@ -425,7 +425,7 @@ void mouse_mesh(void) } else if(eve) { if((eve->f & SELECT)==0) eve->f |= SELECT; - else if(G.qual & LR_SHIFTKEY) eve->f |= ~SELECT; + else if(G.qual & LR_SHIFTKEY) eve->f &= ~SELECT; } /* frontbuffer draw of last selected only */ diff --git a/source/blender/src/space.c b/source/blender/src/space.c index 4f71bead9a1..aa13f4e9394 100644 --- a/source/blender/src/space.c +++ b/source/blender/src/space.c @@ -2081,6 +2081,9 @@ void info_user_themebuts(uiBlock *block, short y1, short y2, short y3) if(th_curcol==TH_VERTEX_SIZE) { uiDefButC(block, NUMSLI, B_UPDATE_THEME,"Vertex size ", 465,y3,200,20, col, 1.0, 10.0, 0, 0, ""); } + else if(th_curcol==TH_FACEDOT_SIZE) { + uiDefButC(block, NUMSLI, B_UPDATE_THEME,"Face dot size ", 465,y3,200,20, col, 1.0, 10.0, 0, 0, ""); + } else if(th_curcol==TH_BUT_DRAWTYPE) { uiBlockBeginAlign(block); uiDefButC(block, ROW, B_UPDATE_THEME, "Minimal", 465,y3,100,20, col, 2.0, 0.0, 0, 0, "");