mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-14 06:31:41 +00:00
Break Text checked every thread of the document for each selected type object to skip threaded frames, and Remove Breaks searched every thread for each selected object to find its story, so the work grew with the number of selected objects times the number of threaded frames. Both commands now index the document's threads once per command: Break Text tests membership in that index, and Remove Breaks takes the story from the indexed thread through threads::story_in, the second half of story_of. Split Text at Cursor, which takes one object, checks it once as before. The results are unchanged. Tests: Break Text on two threaded frames and six point type objects skips the frames unchanged, breaks the rest in place as one undo step and goes through the threads once; Remove Breaks reads the selected story as one text and the other objects on their own, going through the threads once; Split Text at Cursor refuses a threaded frame.