diff options
Diffstat (limited to 'source/blender/bmesh/operators/bmo_inset.c')
-rw-r--r-- | source/blender/bmesh/operators/bmo_inset.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/bmesh/operators/bmo_inset.c b/source/blender/bmesh/operators/bmo_inset.c index 4833290aa0b..7abe0f4477a 100644 --- a/source/blender/bmesh/operators/bmo_inset.c +++ b/source/blender/bmesh/operators/bmo_inset.c @@ -1255,11 +1255,18 @@ void bmo_inset_region_exec(BMesh *bm, BMOperator *op) InterpFace *iface = iface_array[BM_elem_index_get(es->l->f)]; const int i_a = BM_elem_index_get(l_a_other); const int i_b = BM_elem_index_get(l_b_other); + + int ida = bm_save_id(bm, (BMElem *)l_a); + int idb = bm_save_id(bm, (BMElem *)l_b); + CustomData_bmesh_free_block_data(&bm->ldata, l_b->head.data); CustomData_bmesh_free_block_data(&bm->ldata, l_a->head.data); CustomData_bmesh_copy_data(&bm->ldata, &bm->ldata, iface->blocks_l[i_a], &l_b->head.data); CustomData_bmesh_copy_data(&bm->ldata, &bm->ldata, iface->blocks_l[i_b], &l_a->head.data); + bm_restore_id(bm, (BMElem *)l_a, ida); + bm_restore_id(bm, (BMElem *)l_b, idb); + #ifdef USE_LOOP_CUSTOMDATA_MERGE if (has_math_ldata) { BMEdge *e_connect; |