From 0028aa24c1f4195fbe01a7ba1db5c7841b6c4b49 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Fri, 16 Apr 2010 08:14:20 +0000 Subject: Fix [#21559] Loopcut and scale problem. Force mesh out of face select mode and into edge mode when doing loop cut - it left an invalid edge selection in face mode, especially with edge slider afterwards. --- source/blender/editors/mesh/loopcut.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/source/blender/editors/mesh/loopcut.c b/source/blender/editors/mesh/loopcut.c index 314aa2c345f..0fa4c5dcdf1 100644 --- a/source/blender/editors/mesh/loopcut.c +++ b/source/blender/editors/mesh/loopcut.c @@ -271,6 +271,16 @@ static void ringsel_finish(bContext *C, wmOperator *op) 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 */ + if (em->selectmode & SCE_SELECT_FACE) { + if (em->selectmode == SCE_SELECT_FACE) + em->selectmode = SCE_SELECT_EDGE; + else + em->selectmode &= ~SCE_SELECT_FACE; + CTX_data_tool_settings(C)->selectmode= em->selectmode; + EM_selectmode_set(em); + } DAG_id_flush_update(lcd->ob->data, OB_RECALC_DATA); WM_event_add_notifier(C, NC_GEOM|ND_DATA, lcd->ob->data); -- cgit v1.2.3