mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
On each pointer move of an Alt-drag with the Perspective Selection tool, Session::preview put the drag's snapshot back and ran perspective.move with copy again, and persp_edit copied every selected object again. An Alt-drag of a plane widget with the Perspective Grid or Perspective Selection tool ran perspective.plane.move with objects "copy" again, and plane_move copied every object on the plane again. Both commands now take their copies from preview_copies, as apply_transform does for the Selection and transform tools: the first preview copies the objects into a clone of the snapshot, and each later preview of the same objects on the same snapshot maps only those copies. The copies keep their ids, and the document, the selection, the undo step and the journal are the same as before. When the stored grid still lists attachments of its own, as grids saved before attachments were kept on the objects do, both commands copy on every preview as before. With 25,000 rectangles attached to the left plane, a release build of vectorcraft-cli took a median of 424.8 ms for each Alt-drag move of the objects after the first preview and takes 328.9 ms with this change. An Alt-drag of the plane's widget took 340.3 ms a move and takes 256.9 ms. Docs: docs/target-app-parity.md.