diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-07-22 14:44:24 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-07-22 14:44:24 +0400 |
commit | 9634f8f1151740609230c24761ac20fdfe1a9168 (patch) | |
tree | 201b9b684a779a00a5ae58a7b89cdfc042c254b8 /source/blender/editors/mesh/editmesh_utils.c | |
parent | e8b02626f2a52a7e6d032e0e63a5321100bc2bf6 (diff) |
transform was flushing the selection (inline), now skip this and use the selection as-is.
flush the selection on entering editmode instead (since the selection mode can be changed with another mesh).
is other tools leave the selection incorrectly flushed, those will need to be fixed so transform works as expected.
Diffstat (limited to 'source/blender/editors/mesh/editmesh_utils.c')
-rw-r--r-- | source/blender/editors/mesh/editmesh_utils.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c index 63b44fb30d4..f64ea569100 100644 --- a/source/blender/editors/mesh/editmesh_utils.c +++ b/source/blender/editors/mesh/editmesh_utils.c @@ -341,7 +341,7 @@ void EDBM_selectmode_to_scene(bContext *C) WM_event_add_notifier(C, NC_SCENE | ND_TOOLSETTINGS, scene); } -void EDBM_mesh_make(ToolSettings *ts, Scene *UNUSED(scene), Object *ob) +void EDBM_mesh_make(ToolSettings *ts, Object *ob) { Mesh *me = ob->data; BMesh *bm; @@ -368,8 +368,10 @@ void EDBM_mesh_make(ToolSettings *ts, Scene *UNUSED(scene), Object *ob) me->edit_btmesh->selectmode = me->edit_btmesh->bm->selectmode = ts->selectmode; me->edit_btmesh->mat_nr = (ob->actcol > 0) ? ob->actcol - 1 : 0; - me->edit_btmesh->ob = ob; + + /* we need to flush selection because the mode may have changed from when last in editmode */ + EDBM_selectmode_flush(me->edit_btmesh); } void EDBM_mesh_load(Object *ob) |