[#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:
parent
d4663166d6
commit
29377db3f1
@ -133,6 +133,7 @@ void EM_selectmode_set(struct EditMesh *em);
|
|||||||
void EM_select_flush(struct EditMesh *em);
|
void EM_select_flush(struct EditMesh *em);
|
||||||
void EM_convertsel(struct EditMesh *em, short oldmode, short selectmode);
|
void EM_convertsel(struct EditMesh *em, short oldmode, short selectmode);
|
||||||
void EM_validate_selections(struct EditMesh *em);
|
void EM_validate_selections(struct EditMesh *em);
|
||||||
|
void EM_selectmode_to_scene(struct Scene *scene, struct Object *obedit);
|
||||||
|
|
||||||
/* exported to transform */
|
/* exported to transform */
|
||||||
int EM_get_actSelection(struct EditMesh *em, struct EditSelection *ese);
|
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);
|
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 */
|
/* when switching select mode, makes sure selection is consistent for editing */
|
||||||
/* also for paranoia checks to make sure edge or face mode works */
|
/* also for paranoia checks to make sure edge or face mode works */
|
||||||
void EM_selectmode_set(EditMesh *em)
|
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);
|
DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
|
||||||
|
|
||||||
/* XXX notifiers */
|
/* XXX notifiers */
|
||||||
|
Loading…
Reference in New Issue
Block a user