Fix for error found by aphex;
authorTon Roosendaal <ton@blender.org>
Thu, 11 Nov 2004 23:56:56 +0000 (23:56 +0000)
committerTon Roosendaal <ton@blender.org>
Thu, 11 Nov 2004 23:56:56 +0000 (23:56 +0000)
Some extrusions still use proportional mode when thats on. Was due to
adding transfrom('g') for non-normal extrude. Made it new code 'h'

source/blender/src/editmesh_lib.c
source/blender/src/editobject.c

index 1a69820c97bb07de2455f15cf9933177019cedcb..aacd6796d2a1a5d6aa1ea311cc5ca336f6498cc4 100644 (file)
@@ -623,7 +623,7 @@ short extrudeflag_edges_indiv(short flag)
                if(eed->v1->f & eed->v2->f & flag) eed->f |= flag;
        }
        
-       if(nor[0]==0.0 && nor[1]==0.0 && nor[2]==0.0) return 'g';
+       if(nor[0]==0.0 && nor[1]==0.0 && nor[2]==0.0) return 'h'; // h is grab, for correct undo print
        return 'n';
 }
 
@@ -647,7 +647,7 @@ short extrudeflag_verts_indiv(short flag)
 
        for(eve= em->verts.last; eve; eve= eve->prev) if(eve->vn) eve->vn->f |= flag;
 
-       return 'g';
+       return 'h';     // h is grab, for correct undo print
 }
 
 
@@ -818,8 +818,8 @@ static short extrudeflag_edge(short flag)
        }
 
        EM_select_flush();
-       
-       if(nor[0]==0.0 && nor[1]==0.0 && nor[2]==0.0) return 'g';
+
+       if(nor[0]==0.0 && nor[1]==0.0 && nor[2]==0.0) return 'h';
        return 'n';
 }
 
@@ -1042,7 +1042,7 @@ short extrudeflag_vert(short flag)
        // since its vertex select mode now, it also deselects higher order
        EM_selectmode_flush();
 
-       if(nor[0]==0.0 && nor[1]==0.0 && nor[2]==0.0) return 'g';
+       if(nor[0]==0.0 && nor[1]==0.0 && nor[2]==0.0) return 'h'; // h is grab, for correct undo print
        return 'n';
 }
 
index 0e2c112f311d934076c2305f50aa25287b60e197..a507f43142833ace2062dacc9a746a27a6c4a6e9 100644 (file)
@@ -3885,7 +3885,7 @@ void make_trans_verts(float *min, float *max, int mode)
        EditVert *eve;
        int a;
        EditBone        *ebo;
-       
+
        tottrans= 0; // global!
        
        INIT_MINMAX(min, max);
@@ -4945,6 +4945,7 @@ static char *transform_mode_to_string(int mode)
                case 'w':       return("Warp"); break;
                case 'd':       return("Duplicate"); break;
                           case 'n':       return("Extrude"); break;
+                          case 'h':       return("Extrude"); break;
                default:        return("Transform");
        }
 }
@@ -5014,8 +5015,8 @@ void transform(int mode)
                if(mode=='r') mode= 'R';
                if(mode=='s') mode= 'C';
        }
-       /* from duplicate routines */
-       if(mode=='d') mode= 'g';
+       /* from duplicate or extrude routines */
+       if(mode=='d' || mode=='h') mode= 'g';
 
        /* this can cause floating exception at dec alpha */
        d_dvec[0]= d_dvec[1]= d_dvec[2]= 0.0;