feat(编辑能力): 修复组合复制与编辑状态异常
build.yaml / build (push) Successful in 39s

This commit is contained in:
xiaoqidun committed 2026-09-17 22:29:24 +08:00
1 parent 4826496e98
commit 9f2ef7e212
18 files changed
+674 -79

No files matched your search

+11 -4
View File
@@ -219,13 +219,17 @@ func (e *Editor) importPages(source *Reader, indexes []int, at int, copyPage boo
preview := *e
preview.source, preview.pages = next, added
for i, index := range indexes {
layouts := make(map[string]*textLayout)
states := make(map[string]editorCompositeState)
groups := make(map[string]map[string]editorCompositeState)
for _, layer := range e.pages[index].Content.Layer {
for _, object := range layer.Objects {
id := m.ids[editorObjectID(object)]
state := object.state
if layout := object.TextObject.layout; object.Type == "TextObject" && layout != nil {
value := *layout
layouts[m.ids[object.TextObject.ID]] = &value
state.layout = layout
}
states[id] = state
groups[id] = remapCompositeStates(object.CompositeGraphicUnit.states, m.ids)
}
}
if err := preview.loadSourcePage(i); err != nil {
@@ -234,9 +238,12 @@ func (e *Editor) importPages(source *Reader, indexes []int, at int, copyPage boo
for j := range added[i].Content.Layer {
for k := range added[i].Content.Layer[j].Objects {
object := &added[i].Content.Layer[j].Objects[k]
id := editorObjectID(*object)
object.state = states[id]
if object.Type == "TextObject" {
object.TextObject.layout = layouts[object.TextObject.ID]
object.TextObject.layout = object.state.layout
}
object.CompositeGraphicUnit.states = groups[id]
}
}
}