The full protocol described in this chapter so far is only used when both the initiator and receiver have agreed to use the dynamic mode. When using the preregister mode, the initiator grabs the server when the drag starts, and whenever the pointer enters a new top level window, it reads all the drop site information it needs for doing its tracking, visual feedback, etc., from a preregistered database attached to the _MOTIF_DRAG_RECEIVER_INFO property of each participating client top level window. Obviously, no drag X client messages are sent, since no one is listening to them (remember, that the X server is grabbed). The server gets ungrabbed when the user drops the object, at which point the documented drop protocol comes in effect (together with the convention for the transfer success or failure).
For the preregister mode, the _MOTIF_DRAG_RECEIVER_INFO property has also valid information stored in the second half, as descibed in table . In addition, the header (which has a size of 16 bytes) is followed by ``drop site blocks'' that describe the drop sites located within the top level window of a receiver.
For each drop site there is a corresponding drop site block in the _MOTIF_DRAG_RECEIVER_INFO property. Each drop site block starts with a 8 bytes long ``drop site header'', and is followed by a ``visual info block'' and a series of geometry boxes giving geometry information about a drop site. This overall structure is shown in figure .
|
- under construction -