From 2f642d31322984fd5645f88f1f2fd4ed5cfb9435 Mon Sep 17 00:00:00 2001 From: "Dylan M. Taylor" Date: Wed, 11 Nov 2026 00:30:21 +0000 Subject: [PATCH] address review: skip the full recalculation for a no-op unprotect --- crates/engine/src/cmd/review.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/engine/src/cmd/review.rs b/crates/engine/src/cmd/review.rs index 49712dc36..50f769f48 100644 --- a/crates/engine/src/cmd/review.rs +++ b/crates/engine/src/cmd/review.rs @@ -184,8 +184,10 @@ fn unprotect_sheet(s: &mut Session, p: &Json) -> Result { } } edit(s, |cx| { - cx.structural = true; - cx.sheet_mut(sheet)?.protection = None; + // Only removing protection changes what FORMULATEXT reads; a no-op unprotect skips the full recalculation. + if cx.sheet_mut(sheet)?.protection.take().is_some() { + cx.structural = true; + } Ok(Json::Null) }) }