Revision: 16449
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16449
Author:   genscher
Date:     2008-09-09 23:46:19 +0200 (Tue, 09 Sep 2008)

Log Message:
-----------
Bugfix for [#17363] Edge selection mode + knife twice = latter cut doesn't do 
anything

Modified Paths:
--------------
    trunk/blender/source/blender/src/editmesh_loop.c
    trunk/blender/source/blender/src/editmesh_tools.c

Modified: trunk/blender/source/blender/src/editmesh_loop.c
===================================================================
--- trunk/blender/source/blender/src/editmesh_loop.c    2008-09-09 21:15:30 UTC 
(rev 16448)
+++ trunk/blender/source/blender/src/editmesh_loop.c    2008-09-09 21:46:19 UTC 
(rev 16449)
@@ -745,9 +745,9 @@
                        eed= eed->next;
                }
                
-               if      (mode==KNIFE_EXACT)    esubdivideflag(1, 0, 
B_KNIFE|B_PERCENTSUBD,1,SUBDIV_SELECT_ORIG);
-               else if (mode==KNIFE_MIDPOINT) esubdivideflag(1, 0, 
B_KNIFE,1,SUBDIV_SELECT_ORIG);
-               else if (mode==KNIFE_MULTICUT) esubdivideflag(1, 0, 
B_KNIFE,numcuts,SUBDIV_SELECT_ORIG);
+               if(mode==KNIFE_EXACT) esubdivideflag(SELECT, 0, 
B_KNIFE|B_PERCENTSUBD,1,SUBDIV_SELECT_ORIG);
+               else if (mode==KNIFE_MIDPOINT) esubdivideflag(SELECT, 0, 
B_KNIFE,1,SUBDIV_SELECT_ORIG);
+               else if (mode==KNIFE_MULTICUT) esubdivideflag(SELECT, 0, 
B_KNIFE,numcuts,SUBDIV_SELECT_ORIG);
 
                eed=em->edges.first;
                while(eed){

Modified: trunk/blender/source/blender/src/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/src/editmesh_tools.c   2008-09-09 21:15:30 UTC 
(rev 16448)
+++ trunk/blender/source/blender/src/editmesh_tools.c   2008-09-09 21:46:19 UTC 
(rev 16449)
@@ -2698,16 +2698,21 @@
        free_tagged_edges_faces(em->edges.first, em->faces.first); 
        
        if(seltype == SUBDIV_SELECT_ORIG  && G.qual  != LR_CTRLKEY) {
+               /* bugfix: vertex could get flagged as "not-selected"
+               // solution: clear flags before, not at the same time as 
setting SELECT flag -dg
+               */
                for(eed = em->edges.first;eed;eed = eed->next) {
-                       if(eed->f2 & EDGENEW || eed->f2 & EDGEOLD) {
-                               eed->f |= flag;
-                               EM_select_edge(eed,1); 
-                               
-                       }else{
+                       if(!(eed->f2 & EDGENEW || eed->f2 & EDGEOLD)) {
                                eed->f &= !flag;
                                EM_select_edge(eed,0); 
                        }
-               }   
+               }
+               for(eed = em->edges.first;eed;eed = eed->next) {
+                       if(eed->f2 & EDGENEW || eed->f2 & EDGEOLD) {
+                               eed->f |= flag;
+                               EM_select_edge(eed,1);
+                       }
+               }
        } else if ((seltype == SUBDIV_SELECT_INNER || seltype == 
SUBDIV_SELECT_INNER_SEL)|| G.qual == LR_CTRLKEY) {
                for(eed = em->edges.first;eed;eed = eed->next) {
                        if(eed->f2 & EDGEINNER) {


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to