Rebuild a table's block after an edit

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
ramox81andClaude Opus 5.5 committed 2026-10-06 16:06:21 +03:00
1 parent 4239174f8c
commit 470d6a6b7f
3 files changed
+15 -2

No files matched your search

Generated
+1 -1
View File
@@ -4206,7 +4206,7 @@ dependencies = [
[[package]]
name = "opencadcodec"
version = "0.5.5"
source = "git+https://github.com/ramox81/cadcodec.git?rev=24bdac7#24bdac79787a8196227c43cc840277f302e7e124"
source = "git+https://github.com/ramox81/cadcodec.git?rev=87de138#87de1388d5884cb712c24ad407159e45b08df84a"
dependencies = [
"ahash 0.8.12",
"anyhow",
+1 -1
View File
@@ -95,7 +95,7 @@ iced_core = { git = "https://github.com/iced-rs/iced.git", rev = "23604ff22ab0aa
iced_widget = { git = "https://github.com/iced-rs/iced.git", rev = "23604ff22ab0aad9e00b9327cb7b8546ed84db39" }
[patch."https://github.com/HakanSeven12/opencadcodec.git"]
opencadcodec = { git = "https://github.com/ramox81/cadcodec.git", rev = "24bdac7" }
opencadcodec = { git = "https://github.com/ramox81/cadcodec.git", rev = "87de138" }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
getrandom = "0.3"
+13
View File
@@ -3624,6 +3624,19 @@ impl Scene {
}
}
}
// An edited table lets go of its block; rebuild it from the cells so
// the drawing shows and saves the cell texts and grid it now holds.
let mut rebuilt_table_block = false;
for (handle, kind) in &changes {
if !matches!(kind, ChangeKind::Removed)
&& matches!(self.document.get_entity(*handle), Some(EntityType::Table(t)) if t.block_record_handle.is_none())
{
rebuilt_table_block |= self.document.refresh_table_block(*handle);
}
}
if rebuilt_table_block {
self.block_epoch = GEOMETRY_EPOCH.fetch_add(1, Ordering::Relaxed);
}
if !changes.is_empty() {
self.refresh_dependency_index_for_changes(&changes);
}