When elements (including rules, condition definitions, and boxes) are deleted from a model they are placed on a
global clipboard. Elements on this clipboard may then be pasted back into any appropriate place in
the model. The clipboard is actually an unbounded stack. All deleted elements
are pushed onto this stack. Pasting from the clipboard is only possible if an
element on the clipboard is appropriate for the destination of the paste. That
is, for example, it is only possible to paste from the clipboard into a
compound box if a box has previously been placed on the clipboard. If the
clipboard is empty, or contains only deleted rules, condition definitions, or
buffer elements, then pasting into a compound box will not be possible.
Similarly, it is only possible to paste into a buffer if the clipboard
contains buffer elements or condition definitions.
Paste examines the clipboard and selects the top-most element that is
appropriate for the destination of the paste. This may not actually be the
top-most element on the clipboard. For example, if the clipboard contains a
box and a rule (with the box being the most recently deleted element), pasting
into a process will be possible, and the result of that paste will be the
inserting of the rule from the clipboard into the process.
Paste buttons should only be active when pasting is actually possible.
Successful pastes result in the deletion of the pasted element from the
All this means you can, for example, delete some rules from a process, then
deleted some boxes from a compound, then delete some elements from a buffer,
then paste the deleted boxes into another compound, the deleted rules into
another (or the same) process, and ignore the deleted buffer elements.
There are still improvements to be made. It would be nice if a) one could
delete models from a project and have them placed on the clipboard (for later
pasting into projects) and b) it was possible to view the clipboard