From ca1bca442ab3ae6ab4332a24a784a1c79bde4e27 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 25 Aug 2014 16:48:47 +1000 Subject: Fix T40993: Store selection history for extrude --- source/blender/bmesh/operators/bmo_dupe.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'source/blender/bmesh/operators/bmo_dupe.c') diff --git a/source/blender/bmesh/operators/bmo_dupe.c b/source/blender/bmesh/operators/bmo_dupe.c index 794c688b26b..cd5592f08c9 100644 --- a/source/blender/bmesh/operators/bmo_dupe.c +++ b/source/blender/bmesh/operators/bmo_dupe.c @@ -183,6 +183,7 @@ static BMFace *bmo_face_copy(BMOperator *op, */ static void bmo_mesh_copy(BMOperator *op, BMesh *bm_dst, BMesh *bm_src) { + const bool use_select_history = BMO_slot_bool_get(op->slots_in, "use_select_history"); BMVert *v = NULL, *v2; BMEdge *e = NULL; @@ -285,6 +286,16 @@ static void bmo_mesh_copy(BMOperator *op, BMesh *bm_dst, BMesh *bm_src) /* free pointer hashes */ BLI_ghash_free(vhash, NULL, NULL); BLI_ghash_free(ehash, NULL, NULL); + + if (use_select_history) { + BLI_assert(bm_src == bm_dst); + BMO_mesh_selected_remap( + bm_dst, + slot_vert_map_out, + slot_edge_map_out, + slot_face_map_out, + false); + } } /** -- cgit v1.2.3