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.
Pressing the SpaceBar toggles whether the operation is in move or copy mode. The last state is remembered in the next operation. A message in the prompt area indicates the current mode, which will apply when the operation completes.
When in copy mode, a replication count will be read from the keypress buffer of the current window when the copy is performed. This is an integer, entered by typing into the window. If not found or out of the range 1-100000, a single copy is made. Otherwise, multiple copies will be created, at multiples of the translation distance.
Also in copy mode, when clicking twice rather than dragging, the object being copied remains ``attached'' to the mouse pointer, so that additional copies can be placed by simply clicking. Pressing Esc will terminate this mode.
If the Shift 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, and back to the original reference location. 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 can be placed on the new layer. Subcells are not affected.
How this is applied depends on the setting of the LayerChangeMode variable, or equivalently the settings of the Layer Change Mode pop-up from the Set Layer Chg Mode button in the Modify Menu. The possible actions are to ignore the layer change, place objects originating from the old current layer on the new layer, or to place all new objects on the new 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''.