diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-02-26 08:30:08 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-02-26 08:32:49 +0300 |
commit | 9059ee81ef6be5c1eb6157db426165f5a9c2b74a (patch) | |
tree | b89b0ee4801dd962fb3c13baf8135e293d611b2f /source/blender/editors/physics/particle_edit.c | |
parent | b7939a059f9056ae57b4720a4c98dbe9025de407 (diff) |
Fix particle-edit crash on undo/redo
Undo/redo was crashing & asserting.
There ware two bugs:
- Entering particle system edit-mode requires an evaluated depsgraph.
- The active object could get out of sync when undo/redo
moves between different modes.
The new test 'view3d_mesh_particle_edit_mode_simple'
in `tests/ui_simulate/test_undo.py` exposes both issues.
Diffstat (limited to 'source/blender/editors/physics/particle_edit.c')
-rw-r--r-- | source/blender/editors/physics/particle_edit.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index ec3eb9c6a3a..d0ebac82c90 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -5395,6 +5395,9 @@ static void free_all_psys_edit(Object *object) void ED_object_particle_edit_mode_enter_ex(Depsgraph *depsgraph, Scene *scene, Object *ob) { + /* Needed so #ParticleSystemModifierData.mesh_final is set. */ + BKE_scene_graph_evaluated_ensure(depsgraph, G_MAIN); + PTCacheEdit *edit; ob->mode |= OB_MODE_PARTICLE_EDIT; |