Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ebb <matt@mke3.net>2010-04-16 12:14:20 +0400
committerMatt Ebb <matt@mke3.net>2010-04-16 12:14:20 +0400
commit0028aa24c1f4195fbe01a7ba1db5c7841b6c4b49 (patch)
treedc8168d5883953b56d7537682ce2a45b9a62cebb
parent7c791ad7df2439c1dbbc8bd443f46f95b87736bd (diff)
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.
-rw-r--r--source/blender/editors/mesh/loopcut.c10
1 files changed, 10 insertions, 0 deletions
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);