Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2004-10-29 18:30:20 +0400
committerTon Roosendaal <ton@blender.org>2004-10-29 18:30:20 +0400
commitf33f2abe39cb0a6f99c9e7e59858d5d95f7735d5 (patch)
tree07f3c705934fafc751cce199637803a9afb048f0 /source
parentbd9ac7d6ec4a564ebdf57868068aa53aba9e2d0b (diff)
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
Diffstat (limited to 'source')
-rw-r--r--source/blender/src/drawobject.c2
-rw-r--r--source/blender/src/editmesh.c2
-rw-r--r--source/blender/src/editmesh_add.c12
3 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c
index f80f3d37739..aab5be58009 100644
--- a/source/blender/src/drawobject.c
+++ b/source/blender/src/drawobject.c
@@ -3867,7 +3867,7 @@ static void drawSolidSelect(Object *ob, ListBase *lb)
}
drawmeshwire(ob);
-
+
if(dlm && flag) dlm->flag |= flag;
}
else drawDispListwire(lb);
diff --git a/source/blender/src/editmesh.c b/source/blender/src/editmesh.c
index baf086c6159..21777dc7821 100644
--- a/source/blender/src/editmesh.c
+++ b/source/blender/src/editmesh.c
@@ -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.
diff --git a/source/blender/src/editmesh_add.c b/source/blender/src/editmesh_add.c
index 1f0495f3711..f65ed98355e 100644
--- a/source/blender/src/editmesh_add.c
+++ b/source/blender/src/editmesh_add.c
@@ -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);
}
}