A copy operation should transfer the source elements
to the target without affecting the original source element in any
way.
[ ]
A move operation should transfer the source elements
to the target and then remove them from the source.
[ ]
A link transfer operation should do one of the following:
Transfer the source element to the
target, keeping it linked (in an application-specific manner) to
the original source element.
Place a link to the source element (made and displayed
in an application-specific manner) in the target without copying
the source element.
Insertion
[ ]
The insertion point for an operation that transfers
data into a selection scope is determined as follows:
For a mouse-based TRANSFER button
primary transfer or drag-and-drop transfer, the insertion point
is the pointer position when the TRANSFER button is released.
For a transfer invoked via a menu (popped up via
the MENU button) on a selection or object, the insertion point is
the pointer position when the MENU button is pressed.
If neither of the previous applies, the pointer
position is the cursor position.
If the insertion position is not on an object, then do one
of the following:
If insertions can happen only at a
fixed place in the selection scope, the insertion point should be
placed at that point (for example, append-only text).
If the elements in the selection scope are ordered
in some way, the insertion point should be moved (for each element
inserted) so that the element may be inserted at the proper position.
[ ]
If the insertion point is on a selection, but not
on an object, a transfer operation into the scope should have one
of the following effects:
If a link operation, link the selection
to the source elements, if such links are supported by your application.
If pending delete behavior is enabled, replace the
contents of the selection by the transferred data or link (except
possibly for a primary copy at the edge of the primary selection).
Insert the transferred data or link at the insertion
point.
[ ]
If the insertion point is neither on a selection
nor on an object, a transfer operation should insert the transferred
data or link at the insertion point.
[ ]
If the elements are laid out in a linear manner,
insert elements immediately prior to the insertion point.
Exclusions
[ ]
If the target insertion point is within the region
of the source elements, do not perform the transfer; instead, issue
a warning signal.
[ ]
If an operation that transfers data into a scope
is selected from a menu popped up (via the MENU button) on neither
an object nor a selection, issue a warning message if the insertion
point is on an object.
Rules
[ ]
When an object is moved or copied, transfer the
contents of the object along with the object itself.
[ ]
When a move operation is performed, remove the source
elements only if the data transfer has completed successfully. If
the data transfer operation has been canceled or it has failed,
do not remove the source elements.
[ ]
Do not select data transferred to a target as a
result of a link or copy operation.
[ ]
If the source elements used in a data transfer operation
are selected, do not deselect them as a result of the operation.
[ ]
Do not change the source elements used as the source
of a copy or link operation.
[ ]
When transferred data is inserted into a selection
scope (not into objects within the scope) by using normal mode at
a position disjoint from a selection, deselect the selected elements.
[ ]
Inserting or pasting elements at a location disjoint
from the selection should have no effect on the selection in add
mode.
[ ]
If a transfer operation uses an insertion point
based on the position of the pointer (rather than the cursor), place
the cursor at the pointer position used.
Data Format
[ ]
During a transfer operation, allow the data transferred
to change its appearance or representation to suit the requirements
of the target.
Transfer Option
[ ]
Allow the user to
override the default operation of a TRANSFER button-based data transfer
operation by using a modifier key. Table 1-4 “TRANSFER Button Overrides” lists these operations and
overrides.