diff --git a/source/blender/editors/transform/transform_convert_mesh.cc b/source/blender/editors/transform/transform_convert_mesh.cc index 6e7ac72f851..511a6a745e0 100644 --- a/source/blender/editors/transform/transform_convert_mesh.cc +++ b/source/blender/editors/transform/transform_convert_mesh.cc @@ -2063,6 +2063,15 @@ static void mesh_transdata_mirror_apply(TransDataContainer *tc) static void recalcData_mesh(TransInfo *t) { + if (t->mode == TFM_NORMAL_ROTATION) { + FOREACH_TRANS_DATA_CONTAINER (t, tc) { + /* The Rotate Normal mode uses a custom array and ignores any elements created for the mesh + * in transData and similar structures. */ + DEG_id_tag_update(static_cast(tc->obedit->data), ID_RECALC_GEOMETRY); + } + return; + } + bool is_canceling = t->state == TRANS_CANCEL; /* Apply corrections. */ if (!is_canceling) { diff --git a/source/blender/editors/transform/transform_mode_edge_rotate_normal.cc b/source/blender/editors/transform/transform_mode_edge_rotate_normal.cc index b4f3fdb42a2..a5c0cad9453 100644 --- a/source/blender/editors/transform/transform_mode_edge_rotate_normal.cc +++ b/source/blender/editors/transform/transform_mode_edge_rotate_normal.cc @@ -110,13 +110,9 @@ static void applyNormalRotation(TransInfo *t) BKE_lnor_space_custom_normal_to_data( bm->lnor_spacearr->lspacearr[lnor_ed->loop_index], lnor_ed->nloc, lnor_ed->clnors_data); } - - /* Replaces `recalc_data`, thus disregarding partial update, mirror, correct customdata and - * other updates. */ - DEG_id_tag_update(static_cast(tc->obedit->data), ID_RECALC_GEOMETRY); } - // recalc_data(t); + recalc_data(t); ED_area_status_text(t->area, str); }