[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34332] trunk/blender/source/blender/ editors/mesh: Bugfix #25636

Ton Roosendaal ton at blender.org
Sat Jan 15 15:07:12 CET 2011


Revision: 34332
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=34332
Author:   ton
Date:     2011-01-15 14:07:11 +0000 (Sat, 15 Jan 2011)
Log Message:
-----------
Bugfix #25636

On using loop-selects, the active vertex got cleared, it could still
simply indicate one of the vertices of indicated edge to become active.
That keeps the Ui for vertex-groups drawing correct, for example.

Also made loop-ring select store active edge for tools, like the loop-select.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/mesh/editmesh_mods.c
    trunk/blender/source/blender/editors/mesh/loopcut.c

Modified: trunk/blender/source/blender/editors/mesh/editmesh_mods.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_mods.c	2011-01-15 12:29:22 UTC (rev 34331)
+++ trunk/blender/source/blender/editors/mesh/editmesh_mods.c	2011-01-15 14:07:11 UTC (rev 34332)
@@ -2078,8 +2078,11 @@
 //			if (EM_texFaceCheck())
 		
 		/* sets as active, useful for other tools */
-		if(select && em->selectmode & SCE_SELECT_EDGE) {
-			EM_store_selection(em, eed, EDITEDGE);
+		if(select) {
+			if(em->selectmode & SCE_SELECT_VERTEX)
+				EM_store_selection(em, eed->v1, EDITVERT);
+			if(em->selectmode & SCE_SELECT_EDGE)
+				EM_store_selection(em, eed, EDITEDGE);
 		}
 
 		WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc.obedit->data);

Modified: trunk/blender/source/blender/editors/mesh/loopcut.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/loopcut.c	2011-01-15 12:29:22 UTC (rev 34331)
+++ trunk/blender/source/blender/editors/mesh/loopcut.c	2011-01-15 14:07:11 UTC (rev 34332)
@@ -272,9 +272,12 @@
 	int cuts= (lcd->do_cut)? RNA_int_get(op->ptr,"number_cuts"): 0;
 
 	if (lcd->eed) {
+		EditMesh *em = BKE_mesh_get_editmesh(lcd->ob->data);
+		
 		edgering_sel(lcd, cuts, 1);
+		
 		if (lcd->do_cut) {
-			EditMesh *em = BKE_mesh_get_editmesh(lcd->ob->data);
+
 			esubdivideflag(lcd->ob, em, SELECT, 0.0f, 0.0f, 0, cuts, 0, SUBDIV_SELECT_LOOPCUT);
 
 			/* force edge slide to edge select mode in in face select mode */
@@ -293,6 +296,13 @@
 			WM_event_add_notifier(C, NC_GEOM|ND_DATA, lcd->ob->data);
 		}
 		else {
+			
+			/* sets as active, useful for other tools */
+			if(em->selectmode & SCE_SELECT_VERTEX)
+				EM_store_selection(em, lcd->eed->v1, EDITVERT);
+			if(em->selectmode & SCE_SELECT_EDGE)
+				EM_store_selection(em, lcd->eed, EDITEDGE);
+			
 			EM_selectmode_flush(lcd->em);
 			WM_event_add_notifier(C, NC_GEOM|ND_SELECT, lcd->ob->data);
 		}




More information about the Bf-blender-cvs mailing list