[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36112] trunk/blender/source/blender/ editors/mesh/editmesh_mods.c: fix [#26885] transform option disapears when deselecting loops
Campbell Barton
ideasman42 at gmail.com
Tue Apr 12 14:49:54 CEST 2011
Revision: 36112
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36112
Author: campbellbarton
Date: 2011-04-12 12:49:54 +0000 (Tue, 12 Apr 2011)
Log Message:
-----------
fix [#26885] transform option disapears when deselecting loops
deselecting edgeloop & edgering would leave the verts de-selected even if other edges had them selected.
Modified Paths:
--------------
trunk/blender/source/blender/editors/mesh/editmesh_mods.c
Modified: trunk/blender/source/blender/editors/mesh/editmesh_mods.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_mods.c 2011-04-12 12:09:38 UTC (rev 36111)
+++ trunk/blender/source/blender/editors/mesh/editmesh_mods.c 2011-04-12 12:49:54 UTC (rev 36112)
@@ -1827,6 +1827,20 @@
return 1;
}
+static void ensure_ed_vert_sel(EditMesh *em)
+{
+ EditEdge *eed;
+
+ /* EM_selectmode_flush() doesnt take into account that deselected edges
+ * may be still connected to selected edges [#26885] */
+ for(eed= em->edges.first; eed; eed= eed->next) {
+ if(eed->f & SELECT) {
+ eed->v1->f |= SELECT;
+ eed->v2->f |= SELECT;
+ }
+ }
+}
+
/* selects or deselects edges that:
- if edges has 2 faces:
- has vertices with valence of 4
@@ -1899,6 +1913,10 @@
for(eed= em->edges.first; eed; eed= eed->next) {
if(eed->f2) EM_select_edge(eed, select);
}
+
+ if(select == FALSE) {
+ ensure_ed_vert_sel(em);
+ }
}
/*
@@ -1968,6 +1986,10 @@
for(eed= em->edges.first; eed; eed= eed->next) {
if(eed->f2) EM_select_edge(eed, select);
}
+
+ if(select == FALSE) {
+ ensure_ed_vert_sel(em);
+ }
}
static int loop_multiselect(bContext *C, wmOperator *op)
More information about the Bf-blender-cvs
mailing list