diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-08-25 10:40:46 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-08-25 10:42:27 +0400 |
commit | 470e694652a28d20d31e001240fdb9727a6d1480 (patch) | |
tree | 36cc6bd5195bdc06e5dd0994665ef6ccf6f8bf4f /source/blender/bmesh/intern/bmesh_mesh.c | |
parent | 93d40aef05318cdc1f5ff0dac3e229cba2cc9527 (diff) |
BMesh: New operator flag not to clear history
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_mesh.c')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/bmesh/intern/bmesh_mesh.c b/source/blender/bmesh/intern/bmesh_mesh.c index 26a224c7c71..b16ea42304a 100644 --- a/source/blender/bmesh/intern/bmesh_mesh.c +++ b/source/blender/bmesh/intern/bmesh_mesh.c @@ -766,6 +766,8 @@ void bmesh_edit_begin(BMesh *UNUSED(bm), BMOpTypeFlag UNUSED(type_flag)) */ void bmesh_edit_end(BMesh *bm, BMOpTypeFlag type_flag) { + ListBase select_history; + /* BMO_OPTYPE_FLAG_UNTAN_MULTIRES disabled for now, see comment above in bmesh_edit_begin. */ #ifdef BMOP_UNTAN_MULTIRES_ENABLED /* switch multires data into tangent space */ @@ -784,9 +786,19 @@ void bmesh_edit_end(BMesh *bm, BMOpTypeFlag type_flag) BM_mesh_normals_update(bm); } + + if ((type_flag & BMO_OPTYPE_FLAG_SELECT_VALIDATE) == 0) { + select_history = bm->selected; + BLI_listbase_clear(&bm->selected); + } + if (type_flag & BMO_OPTYPE_FLAG_SELECT_FLUSH) { BM_mesh_select_mode_flush(bm); } + + if ((type_flag & BMO_OPTYPE_FLAG_SELECT_VALIDATE) == 0) { + bm->selected = select_history; + } } void BM_mesh_elem_index_ensure(BMesh *bm, const char htype) |