forked from 1b-agent/opencadstudio-upstream
fix(render): repaint on layer/property edits (#231)
Layer color/linetype/lineweight and MATCHPROP edits set the document dirty flag but never bumped geometry_epoch. The wire caches key on that epoch and bake a ByLayer entity's resolved color at tessellation time, so they returned stale wires until a new entity forced a rebuild. Bump geometry on those four handlers so the edit repaints immediately. Also remove REGEN/REGENALL/REDRAW/REDRWALL: the GPU raster pipeline keeps the display continuously in sync, so on-demand regen/redraw is a no-op concept in OCS. Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
1 parent
a994a148fe
commit
f6a7b0885f
6 files changed
+29
-12
No files matched your search
@@ -964,6 +964,10 @@ impl OpenCADStudio {
|
||||
pl.color = new_color;
|
||||
}
|
||||
self.tabs[i].dirty = true;
|
||||
// ByLayer color is baked into the cached wires at
|
||||
// tessellation time, so bump the geometry epoch to
|
||||
// invalidate the wire cache and repaint with the new color.
|
||||
self.tabs[i].scene.bump_geometry();
|
||||
}
|
||||
self.tabs[i].layers.color_picker_row = None;
|
||||
self.tabs[i].layers.color_full_palette = false;
|
||||
@@ -984,6 +988,8 @@ impl OpenCADStudio {
|
||||
pl.linetype = lt;
|
||||
}
|
||||
self.tabs[i].dirty = true;
|
||||
// Linetype is baked into the cached wires; repaint.
|
||||
self.tabs[i].scene.bump_geometry();
|
||||
}
|
||||
}
|
||||
Task::none()
|
||||
@@ -1001,6 +1007,8 @@ impl OpenCADStudio {
|
||||
pl.lineweight = lw;
|
||||
}
|
||||
self.tabs[i].dirty = true;
|
||||
// Lineweight is baked into the cached wires; repaint.
|
||||
self.tabs[i].scene.bump_geometry();
|
||||
}
|
||||
}
|
||||
Task::none()
|
||||
|
||||
Reference in new issue
Block a user