The direct manipulation protocol enables the user to select an object in a window, drag it to another location, and drop it on another object or in another window. Dragging is the act of moving an object as though it were attached to the pointer; it is performed by pressing and holding the drag button and moving the pointer. Dropping is the act of fixing the position of the dragged object by releasing the drag button on the pointer. This causes interaction (data exchange) between the window from which the selected object is dragged and the window containing the object on which the selected object is dropped.
The window containing the dragged object is the source. The window containing the object that was dropped on is the target. The source and target can be the same window, different windows within the same application, or windows belonging to different applications. The dragged object can be either the only visible object in the source window or one of many objects. The target object can be either the only visible object in the target window or one of many objects. A source or target window that contains multiple objects is a container window.
The data exchange that occurs between the source and target after a direct manipulation operation enables applications that support the protocol to integrate easily, while providing a simple user interface.