mirror of
https://github.com/storytold/figcraft.git
synced 2026-11-12 08:51:11 +00:00
With a fill, stroke or effect row highlighted, Cmd/Ctrl+C (or Edit ▸ Copy) copies that paint or effect instead of the layers, through the same `fill.copy`, `stroke.copy` and `effect.copy` the row's menu runs. Cmd/Ctrl+V then pastes it onto every selected layer with `fill.paste`, `stroke.paste` or `effect.paste`, one undo step: on top of each layer's list, or in place of the highlighted row when it is of the same kind. - A copy keeps its kind. A stroke goes to the strokes and an effect to the effects whatever row is highlighted, and the last row copied is the one pasted. - A solid colour goes to the system clipboard as its hex code, anything else as a marker. A paste takes the property only while the system clipboard still holds that copy and no layers were copied since, so text or an image from another app, or a later layer copy, pastes as before. The row menus' Copy writes the same, so Cmd/Ctrl+V pastes it. - A programmatic copy never writes the system clipboard, and forgets a property mirror it replaced. A mirror whose engine copy is gone pastes nothing rather than the layers copied before it. - The copy is shared by every window, as the layer copy is. Tests: property_rows_tests (15 more, 22 in all); the replace index and the Escape key were each removed once to check the tests fail.