fix(move): dimensions with a baked block redraw where they were moved

MOVE shifted the *D block contents but left the block cache on the old
epoch, so reopened drawings showed dimensions in place until REGEN.

Fixes #1342

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Hakan SevenandClaude Opus 5.5 committed 2026-09-28 18:45:34 +03:00
1 parent 3b2dd8dcb5
commit 05502aac63
1 file changed
+7
+7
View File
@@ -358,6 +358,13 @@ impl Scene {
view::dispatch::apply_transform(entity, t);
}
}
// The moved `*D` contents are a block definition the block cache holds;
// without a fresh block epoch a reopened drawing's dimensions stay
// drawn where they were until REGEN. (#1342)
if !dim_block_subs.is_empty() {
self.block_epoch =
super::GEOMETRY_EPOCH.fetch_add(1, std::sync::atomic::Ordering::Relaxed);
}
// Only the transformed entities changed (a top-level move/rotate/scale/
// mirror never edits a block definition) — report just those so the
// resident set re-tessellates only them and every derived cache patches