diff options
Diffstat (limited to 'source/blender/editors/mesh/editmesh_mods.c')
-rw-r--r-- | source/blender/editors/mesh/editmesh_mods.c | 67 |
1 files changed, 36 insertions, 31 deletions
diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index 717b725387a..b2ae7ddf7e0 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * The Original Code is Copyright (C) 2004 Blender Foundation. * All rights reserved. @@ -1294,7 +1294,7 @@ void MESH_OT_select_similar(wmOperatorType *ot) /* identifiers */ ot->name= "Select Similar"; - ot->description= "Select similar vertices, edges or faces by property types."; + ot->description= "Select similar vertices, edges or faces by property types"; ot->idname= "MESH_OT_select_similar"; /* api callbacks */ @@ -2024,7 +2024,7 @@ void MESH_OT_loop_multi_select(wmOperatorType *ot) { /* identifiers */ ot->name= "Multi Select Loops"; - ot->description= "Select a loop of connected edges by connection type."; + ot->description= "Select a loop of connected edges by connection type"; ot->idname= "MESH_OT_loop_multi_select"; /* api callbacks */ @@ -2111,7 +2111,7 @@ void MESH_OT_loop_select(wmOperatorType *ot) { /* identifiers */ ot->name= "Loop Select"; - ot->description= "Select a loop of connected edges."; + ot->description= "Select a loop of connected edges"; ot->idname= "MESH_OT_loop_select"; /* api callbacks */ @@ -2133,7 +2133,7 @@ static void mouse_mesh_shortest_path(bContext *C, short mval[2]) { ViewContext vc; EditMesh *em; - EditEdge *eed; + EditEdge *eed, *eed_act= NULL; int dist= 50; em_setup_viewcontext(C, &vc); @@ -2153,7 +2153,6 @@ static void mouse_mesh_shortest_path(bContext *C, short mval[2]) EditSelection *ese = em->selected.last; if(ese && ese->type == EDITEDGE) { - EditEdge *eed_act; eed_act = (EditEdge*)ese->data; if (eed_act != eed) { if (edgetag_shortest_path(vc.scene, em, eed_act, eed)) { @@ -2167,14 +2166,20 @@ static void mouse_mesh_shortest_path(bContext *C, short mval[2]) int act = (edgetag_context_check(vc.scene, eed)==0); edgetag_context_set(vc.scene, eed, act); /* switch the edge option */ } - - EM_selectmode_flush(em); /* even if this is selected it may not be in the selection list */ - if(edgetag_context_check(vc.scene, eed)==0) + if(edgetag_context_check(vc.scene, eed)==EDGE_MODE_SELECT) EM_remove_selection(em, eed, EDITEDGE); - else + else { + /* other modes need to keep the last edge tagged */ + if(eed_act) + EM_select_edge(eed_act, 0); + + EM_select_edge(eed, 1); EM_store_selection(em, eed, EDITEDGE); + } + + EM_selectmode_flush(em); /* force drawmode for mesh */ switch (vc.scene->toolsettings->edge_mode) { @@ -2213,7 +2218,7 @@ void MESH_OT_select_shortest_path(wmOperatorType *ot) { /* identifiers */ ot->name= "Shortest Path Select"; - ot->description= "Select shortest path between two selections."; + ot->description= "Select shortest path between two selections"; ot->idname= "MESH_OT_select_shortest_path"; /* api callbacks */ @@ -2521,7 +2526,7 @@ void MESH_OT_select_linked_pick(wmOperatorType *ot) { /* identifiers */ ot->name= "Select Linked"; - ot->description= "(un)select all vertices linked to the active mesh."; + ot->description= "(un)select all vertices linked to the active mesh"; ot->idname= "MESH_OT_select_linked_pick"; /* api callbacks */ @@ -2610,7 +2615,7 @@ void MESH_OT_select_linked(wmOperatorType *ot) { /* identifiers */ ot->name= "Select Linked All"; - ot->description= "Select all vertices linked to the active mesh."; + ot->description= "Select all vertices linked to the active mesh"; ot->idname= "MESH_OT_select_linked"; /* api callbacks */ @@ -2747,7 +2752,7 @@ void MESH_OT_hide(wmOperatorType *ot) { /* identifiers */ ot->name= "Hide Selection"; - ot->description= "Hide (un)selected vertices, edges or faces."; + ot->description= "Hide (un)selected vertices, edges or faces"; ot->idname= "MESH_OT_hide"; /* api callbacks */ @@ -2814,7 +2819,7 @@ void MESH_OT_reveal(wmOperatorType *ot) { /* identifiers */ ot->name= "Reveal Hidden"; - ot->description= "Reveal all hidden vertices, edges and faces."; + ot->description= "Reveal all hidden vertices, edges and faces"; ot->idname= "MESH_OT_reveal"; /* api callbacks */ @@ -2869,7 +2874,7 @@ void MESH_OT_select_by_number_vertices(wmOperatorType *ot) /* identifiers */ ot->name= "Select by Number of Vertices"; - ot->description= "Select vertices or faces by vertex count."; + ot->description= "Select vertices or faces by vertex count"; ot->idname= "MESH_OT_select_by_number_vertices"; /* api callbacks */ @@ -2903,7 +2908,7 @@ void MESH_OT_select_mirror(wmOperatorType *ot) { /* identifiers */ ot->name= "Select Mirror"; - ot->description= "Select mesh items at mirrored locations."; + ot->description= "Select mesh items at mirrored locations"; ot->idname= "MESH_OT_select_mirror"; /* api callbacks */ @@ -3024,7 +3029,7 @@ void MESH_OT_edges_select_sharp(wmOperatorType *ot) { /* identifiers */ ot->name= "Select Sharp Edges"; - ot->description= "Marked selected edges as sharp."; + ot->description= "Marked selected edges as sharp"; ot->idname= "MESH_OT_edges_select_sharp"; /* api callbacks */ @@ -3192,7 +3197,7 @@ void MESH_OT_faces_select_linked_flat(wmOperatorType *ot) { /* identifiers */ ot->name= "Select Linked Flat Faces"; - ot->description= "Select linked faces by angle."; + ot->description= "Select linked faces by angle"; ot->idname= "MESH_OT_faces_select_linked_flat"; /* api callbacks */ @@ -3293,7 +3298,7 @@ void MESH_OT_select_non_manifold(wmOperatorType *ot) { /* identifiers */ ot->name= "Select Non Manifold"; - ot->description= "Select all non-manifold vertices or edges."; + ot->description= "Select all non-manifold vertices or edges"; ot->idname= "MESH_OT_select_non_manifold"; /* api callbacks */ @@ -3357,7 +3362,7 @@ void MESH_OT_select_inverse(wmOperatorType *ot) { /* identifiers */ ot->name= "Select Inverse"; - ot->description= "Select inverse of (un)selected vertices, edges or faces."; + ot->description= "Select inverse of (un)selected vertices, edges or faces"; ot->idname= "MESH_OT_select_inverse"; /* api callbacks */ @@ -3419,7 +3424,7 @@ void MESH_OT_select_all(wmOperatorType *ot) { /* identifiers */ ot->name= "Select/Deselect All"; - ot->description= "Change selection of all vertices, edges or faces."; + ot->description= "Change selection of all vertices, edges or faces"; ot->idname= "MESH_OT_select_all"; /* api callbacks */ @@ -3492,7 +3497,7 @@ void MESH_OT_select_more(wmOperatorType *ot) { /* identifiers */ ot->name= "Select More"; - ot->description= "Select more vertices, edges or faces connected to initial selection."; + ot->description= "Select more vertices, edges or faces connected to initial selection"; ot->idname= "MESH_OT_select_more"; /* api callbacks */ @@ -3582,7 +3587,7 @@ void MESH_OT_select_less(wmOperatorType *ot) { /* identifiers */ ot->name= "Select Less"; - ot->description= "Select less vertices, edges or faces connected to initial selection."; + ot->description= "Select less vertices, edges or faces connected to initial selection"; ot->idname= "MESH_OT_select_less"; /* api callbacks */ @@ -3652,7 +3657,7 @@ void MESH_OT_select_random(wmOperatorType *ot) { /* identifiers */ ot->name= "Select Random"; - ot->description= "Randomly select vertices."; + ot->description= "Randomly select vertices"; ot->idname= "MESH_OT_select_random"; /* api callbacks */ @@ -3739,7 +3744,7 @@ void MESH_OT_mark_seam(wmOperatorType *ot) { /* identifiers */ ot->name= "Mark Seam"; - ot->description= "(un)mark selected edges as a seam."; + ot->description= "(un)mark selected edges as a seam"; ot->idname= "MESH_OT_mark_seam"; /* api callbacks */ @@ -3791,7 +3796,7 @@ void MESH_OT_mark_sharp(wmOperatorType *ot) { /* identifiers */ ot->name= "Mark Sharp"; - ot->description= "(un)mark selected edges as sharp."; + ot->description= "(un)mark selected edges as sharp"; ot->idname= "MESH_OT_mark_sharp"; /* api callbacks */ @@ -4035,7 +4040,7 @@ void MESH_OT_normals_make_consistent(wmOperatorType *ot) { /* identifiers */ ot->name= "Make Normals Consistent"; - ot->description= "Flip all selected vertex and face normals in a consistent direction."; + ot->description= "Flip all selected vertex and face normals in a consistent direction"; ot->idname= "MESH_OT_normals_make_consistent"; /* api callbacks */ @@ -4379,7 +4384,7 @@ void MESH_OT_vertices_smooth(wmOperatorType *ot) { /* identifiers */ ot->name= "Smooth Vertex"; - ot->description= "Flatten angles of selected vertices."; + ot->description= "Flatten angles of selected vertices"; ot->idname= "MESH_OT_vertices_smooth"; /* api callbacks */ @@ -4486,7 +4491,7 @@ void MESH_OT_flip_normals(wmOperatorType *ot) { /* identifiers */ ot->name= "Flip Normals"; - ot->description= "Toggle the direction of selected face's vertex and face normals."; + ot->description= "Toggle the direction of selected face's vertex and face normals"; ot->idname= "MESH_OT_flip_normals"; /* api callbacks */ @@ -4528,7 +4533,7 @@ void MESH_OT_solidify(wmOperatorType *ot) PropertyRNA *prop; /* identifiers */ ot->name= "Solidify"; - ot->description= "Create a solid skin by extruding, compensating for sharp angles."; + ot->description= "Create a solid skin by extruding, compensating for sharp angles"; ot->idname= "MESH_OT_solidify"; /* api callbacks */ |