From 1494a22a900a91483c91cdb259523e3ce063f9c3 Mon Sep 17 00:00:00 2001 From: Joseph Eagar Date: Thu, 29 Sep 2022 02:33:24 -0700 Subject: Sculpt: Reset automask cache on non-color non-mask undo steps --- source/blender/editors/sculpt_paint/sculpt_undo.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'source') diff --git a/source/blender/editors/sculpt_paint/sculpt_undo.c b/source/blender/editors/sculpt_paint/sculpt_undo.c index 4d36ff4b623..04c60933c73 100644 --- a/source/blender/editors/sculpt_paint/sculpt_undo.c +++ b/source/blender/editors/sculpt_paint/sculpt_undo.c @@ -740,8 +740,13 @@ static void sculpt_undo_restore_list(bContext *C, Depsgraph *depsgraph, ListBase bool update = false, rebuild = false, update_mask = false, update_visibility = false; bool need_mask = false; bool need_refine_subdiv = false; + bool clear_automask_cache = false; for (unode = lb->first; unode; unode = unode->next) { + if (!ELEM(unode->type, SCULPT_UNDO_COLOR, SCULPT_UNDO_MASK)) { + clear_automask_cache = true; + } + /* Restore pivot. */ copy_v3_v3(ss->pivot_pos, unode->pivot_pos); copy_v3_v3(ss->pivot_rot, unode->pivot_rot); @@ -755,6 +760,10 @@ static void sculpt_undo_restore_list(bContext *C, Depsgraph *depsgraph, ListBase } } + if (clear_automask_cache) { + ss->last_automasking_settings_hash = 0; + } + DEG_id_tag_update(&ob->id, ID_RECALC_SHADING); if (lb->first) { -- cgit v1.2.3