Blender Git Commit Log

Git Commits -> Revision bc09038

Revision bc09038 by Bastien Montagne (master)
November 12, 2020, 09:47 (GMT)
Fix T82388: Sculpt mode: Unexpected undo behavior.

Issue exposed by rB4c7b1766a7f1.

Main idea is that non-memfile first undo step should check into previous
memfile and tag the ID it is editing as `future_changed`.

That way, when we go back and undo to the memfile, said IDs are properly
detected as changed and re-read from the memfile.

Otherwise, undo system sees them as unchanged, and just re-use the
current data instead.

Note that currently only Sculpt mode seems affected (probably because it
is storing the mode switch itself as a Sculpt undo step instead of a
memfile one), but similar action might be needed in some other cases
too.

Maniphest Tasks: T82388

Differential Revision: https://developer.blender.org/D9510

Commit Details:

Full Hash: bc090387ace9cf041455fa01e68d61551c47e18f
Parent Commit: fb4113d
Lines Changed: +70, -27

16 Modified Paths:

/source/blender/editors/include/ED_undo.h (+1, -0) (Diff)
/source/blender/editors/sculpt_paint/paint_hide.c (+2, -2) (Diff)
/source/blender/editors/sculpt_paint/paint_mask.c (+2, -2) (Diff)
/source/blender/editors/sculpt_paint/sculpt.c (+5, -5) (Diff)
/source/blender/editors/sculpt_paint/sculpt_cloth.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/sculpt_detail.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/sculpt_dyntopo.c (+2, -2) (Diff)
/source/blender/editors/sculpt_paint/sculpt_face_set.c (+4, -4) (Diff)
/source/blender/editors/sculpt_paint/sculpt_filter_color.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/sculpt_filter_mask.c (+2, -2) (Diff)
/source/blender/editors/sculpt_paint/sculpt_filter_mesh.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/sculpt_intern.h (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/sculpt_mask_expand.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/sculpt_transform.c (+1, -1) (Diff)
/source/blender/editors/sculpt_paint/sculpt_undo.c (+10, -3) (Diff)
/source/blender/editors/undo/memfile_undo.c (+35, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021