forked from 1b-agent/opencadstudio-upstream
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:
1 parent
7811add666
commit
5ea6a9ac8e
2 files changed
+17
No files matched your search
@@ -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 {
|
||||
|
||||
Reference in new issue
Block a user