Objects must first be selected in order to be moved or copied. These operations are short-cuts to the Move and Copy commands in the Edit Menu. There are also !mo (move) and !co (copy) commands available for text-mode input from the prompt line.
If the Shift key is down when the user presses button 1, and the pointer is over a selected object, then a move/copy operation on all of the selected objects is initiated. Alternatively, pressing button 1 with no keys pressed over a selected object and holding, motionless for a brief period, will similarly initiate a move/copy operation. In the first case, if the user releases button 1 immediately (clicks) then the outlines of the selected objects are ``attached'' to the pointer and the move/copy operation will complete when the user clicks a second time. Alternatively, the user can drag the pointer (with button 1 still pressed), and the release event will complete the operation. In the second case, the pointer must remain motionless with button 1 down for a brief period. The user can release button 1, at which point the objects are attached to the pointer, and complete the operation with a second button 1 press. Alternatively, the user can begin to drag, and complete the operation by releasing button 1. The brief period of inactivity, or the fact that the Shift key is pressed, signals the start of a move/copy operation.
If the Shift key is down while the user completes the operation, by either releasing button 1 if dragging or clicking button 1 a second time, the objects will be copied to the new location. If Shift is not down when the operation is completed, the objects will be moved.
If the Ctrl key is down when the operation is completed, the angle of translation is constrained to be multiples of 45 degrees. This constraint is visible during the move/copy by observing the behavior or the ghost-drawn outlines as the pointer moves. This is often useful for making sure that the new location is horizontally, vertically, or diagonally aligned with the original location.
If the Enter is pressed during a move, when the objects being moved are ghost-drawn and attached to the pointer, the reference point of the object becomes the lower left corner of the bounding box of the objects. Pressing Enter will cycle the reference point through the corners of the bounding box. Note that this allows objects that have somehow gotten off-grid to be returned to the grid.
It is possible to change the layer of objects during a move/copy operation. During the time that objects are ghost drawn and attached to the mouse pointer, if the current layer is changed, the objects that are attached will be placed on the new layer. Subcells are not affected. If in layer-specific mode, only objects whose layer was the original current layer will be changed to the new layer. If not in layer-specific mode, all new objects will be placed on the new layer, no matter what their original layer. If the current layer is set back to the previous layer before clicking to locate the new objects, no layers will change. Note that layer change is only possible for ``click-click'' mode and not ``press-drag''.