Transferring data Three types of data transfers can be performed when a valid drop occurs: move (XmDROPMOVE), copy (XmDROPCOPY), or link (XmDROPLINK). The type of transfer chosen depends on the advertised capabilities of each side involved in the transfer and on the state of the keyboard at the time of the drop. If no type of transfer can be chosen (XmDROPNOOP), then the drop is invalid. The user can affect the type of transfer chosen by pressing the following keys while dragging: Shift Forces a move if both sides support moving, otherwise no type of transfer can be chosen Ctrl Forces a copy if both sides support copying, otherwise not type of transfer can be chosen Ctrl+Shift Forces a link is both sides support linking, otherwise no type of transfer can be chosen If no key is pressed while dropping, then the system chooses the first of move, copy, or link (in that order) that is supported by both sides. If no type of transfer is supported by both sides, then no type of transfer can be chosen. Applications must ensure that the semantics of the data transfer are consistent with the following conventions: Move The destination first gets a copy of the data, then tells the source to delete the data. Copy The source and destination both keep a copy of the data. Link The source keeps the only copy of the data, and the destination establishes a link to that copy.