diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2006-02-10 16:37:06 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2006-02-10 16:37:06 +0300 |
commit | 24694229b15885d120abfd8a54946adecb63679e (patch) | |
tree | 309470b361616d4cbb790fb5ee2cd22421d40e9f /source/blender/src/editface.c | |
parent | 83ea72de1ad6f37a754e7aa39c8a55d244314481 (diff) |
Faceselect mode fixes:
- Don't allow entering faceselect mode on a linked mesh (only checked object).
- Enable drawing of seams after ctrl+E seam marking.
Diffstat (limited to 'source/blender/src/editface.c')
-rw-r--r-- | source/blender/src/editface.c | 51 |
1 files changed, 31 insertions, 20 deletions
diff --git a/source/blender/src/editface.c b/source/blender/src/editface.c index e6b64a276c1..d7cf1fefde3 100644 --- a/source/blender/src/editface.c +++ b/source/blender/src/editface.c @@ -1213,6 +1213,7 @@ void seam_mark_clear_tface(short mode) if (G.rt == 8) unwrap_lscm(1); + G.f |= G_DRAWSEAMS; BIF_undo_push("Mark Seam"); object_tface_flags_changed(OBACT, 1); @@ -1422,34 +1423,44 @@ void set_faceselect() /* toggle */ Mesh *me = 0; scrarea_queue_headredraw(curarea); - if(ob==NULL || ob->id.lib) return; - - if(G.f & G_FACESELECT) G.f &= ~G_FACESELECT; - else { - if (ob && ob->type == OB_MESH) G.f |= G_FACESELECT; + if(ob==NULL) return; + if(ob->id.lib) { + error("Can't edit library data"); + return; } - allqueue(REDRAWVIEW3D, 0); - allqueue(REDRAWBUTSEDIT, 0); - allqueue(REDRAWIMAGE, 0); - - ob= OBACT; me= get_mesh(ob); - if(me && me->tface==NULL) make_tfaces(me); - + if(me && me->id.lib) { + error("Can't edit library data"); + return; + } + if(G.f & G_FACESELECT) { + G.f &= ~G_FACESELECT; + + if((G.f & (G_WEIGHTPAINT|G_VERTEXPAINT|G_TEXTUREPAINT))==0) { + if(me) { + reveal_tface(); + DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); + } + setcursor_space(SPACE_VIEW3D, CURSOR_STD); + BIF_undo_push("End UV Faceselect"); + } + } + else if (me) { + G.f |= G_FACESELECT; + if(me->tface==NULL) + make_tfaces(me); + setcursor_space(SPACE_VIEW3D, CURSOR_FACESEL); BIF_undo_push("Set UV Faceselect"); } - else if((G.f & (G_WEIGHTPAINT|G_VERTEXPAINT|G_TEXTUREPAINT))==0) { - if(me) { - reveal_tface(); - DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); - } - setcursor_space(SPACE_VIEW3D, CURSOR_STD); - BIF_undo_push("End UV Faceselect"); - } + countall(); + + allqueue(REDRAWVIEW3D, 0); + allqueue(REDRAWBUTSEDIT, 0); + allqueue(REDRAWIMAGE, 0); } |