Blender Git Loki
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)
/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)