[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