
The macro dnd_is_local(drop_event) returns TRUE if the source and destination of
the drag and drop are the same application. This macro is available so that local (occurring
within a single client) drag and drops can be optimized.
19.4.0.1 The move operation
If the application receives an ACTION_DRAG_MOVE, it should simulate a move by performing
a copy followed by a delete. The delete is initiated by the requestor asking the holder to
convert the DELETE target. For example, a blocking selection transfer uses the following
code:
xv_set(sel_object, SEL_TYPE_NAME, "DELETE", NULL);
(void)xv_get(sel_object, SEL_DATA, &length, &format);
A non-blocking selection transfer would be initiated as follows:
xv_set(sel_object, SEL_TYPE_NAME, "DELETE", NULL);
sel_post_request(sel_object);
The application should only ask the owner to delete the selection if the drop event indicates a
move operation and the application determines it is appropriate to do so. This will typically
happen after the application has successfully transferred the data. To avoid data loss, it is very
important to assure that the data was successfully transferred to the destination application
before the data is deleted from the application that is the source of the drag.
19.4.0.2 The done procedure
At the end of the drag and drop operation, after the data has been transferred, the application
received the drop must inform XView that the