fix(edit): grip edits drop a dimension's stale baked *D block (#398)

A reopened file renders dimensions from the *D block baked on save, so
grip drags only moved definition points while the stale block kept
drawing — grips worked on fresh dimensions but died after a roundtrip.
Route the grip drag, grip-menu actions and typed grip-menu values
through invalidate_dim_block (#181) so tessellation falls back to live
geometry and the next save re-bakes.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
Hakan SevenandClaude Fable 5 committed 2026-07-21 19:56:23 +03:00
1 parent 7811add666
commit 5ea6a9ac8e
2 files changed
+17

No files matched your search

+5
View File
@@ -391,6 +391,11 @@ impl Scene {
if let Some(entity) = self.document.get_entity_mut(handle) {
view::dispatch::apply_grip(entity, grip_id, apply);
}
// A dimension loaded from a file renders through its baked *D block;
// the grip only moved a definition point, so the baked graphics are
// stale — drop them so tessellation falls back to the live geometry
// and the next save re-bakes (no-op for non-dimensions). (#398)
crate::modules::draw::modify::explode::invalidate_dim_block(&mut self.document, handle);
// Translate MeshModel vertices by the same delta the grip applied.
if let Some(old) = old_por {