mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-14 19:26:56 -04:00
After every edit of a document with threaded text, each frame of a drag included, threads::reflow copied the runs and the text object of every frame of every thread, and then dropped the copies for each thread whose frames the edit had not changed. With a story of 50,000 characters threaded through 8 frames with a style change at every word (9,618 runs), moving another object took 7.8 ms in a release build, and a frame of a drag took 7.2 ms. reflow now copies a thread's story only when one of its frames changed. The same move takes 0.013 ms, and the drag frame takes 0.012 ms. Threads with a changed frame re-flow as before, and the documents and undo steps after edits are the same as before. Docs: docs/target-app-parity.md.