[#19872] Mesh edit missing undo push for mode changing

copy the editmesh select mode back to the scene on undo.
This commit is contained in:
Campbell Barton 2010-01-30 16:09:56 +00:00
parent d4663166d6
commit 29377db3f1
3 changed files with 11 additions and 0 deletions

@ -133,6 +133,7 @@ void EM_selectmode_set(struct EditMesh *em);
void EM_select_flush(struct EditMesh *em);
void EM_convertsel(struct EditMesh *em, short oldmode, short selectmode);
void EM_validate_selections(struct EditMesh *em);
void EM_selectmode_to_scene(struct Scene *scene, struct Object *obedit);
/* exported to transform */
int EM_get_actSelection(struct EditMesh *em, struct EditSelection *ese);

@ -743,6 +743,11 @@ void EM_convertsel(EditMesh *em, short oldmode, short selectmode)
EM_nfaces_selected(em);
}
void EM_selectmode_to_scene(struct Scene *scene, struct Object *obedit)
{
scene->toolsettings->selectmode= get_mesh(obedit)->edit_mesh->selectmode;
}
/* when switching select mode, makes sure selection is consistent for editing */
/* also for paranoia checks to make sure edge or face mode works */
void EM_selectmode_set(EditMesh *em)

@ -269,6 +269,11 @@ void undo_editmode_step(bContext *C, int step)
}
}
/* special case for editmesh, mode must be copied back to the scene */
if(obedit->type == OB_MESH) {
EM_selectmode_to_scene(CTX_data_scene(C), obedit);
}
DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
/* XXX notifiers */