Keywords: LessTif

Next: 2. Pointer Motion Up: 3. The Drag Protocol Previous: 3. The Drag Protocol Contents Index

## 1. Entering/Leaving Top Level Windows

When the pointer enters a new top level window, the initiator notifies the receiver with a XmTOP_LEVEL_ENTER message.

XmTOP_LEVEL_ENTER

Table: The XmTOP_LEVEL_ENTER message send by the initiator.
Message User Data | Size | Description
data.b[0] | BYTE | Reason: XmTOP_LEVEL_ENTER (0x00)
data.b[1] | BYTE | Byte Order: either 'B' (MSB first) or 'l' (LSB first).
data.b[2..3] | CARD16 | (DnD Flags: unused)
data.b[4..7] | CARD32 | Timestamp: set to the timestamp of the corresponding X event triggering this message.
data.b[8..11] | CARD32 | Source Window: source window ID of the initiator.
data.b[12..15] | CARD32 | Drag Initiator Info Atom: atom ID of a property the initiator set up when it started the drag or drop operation.

The atom ID (in table it is called the ``Drag Initiator Info Atom'') sent in the XmTOP_LEVEL_ENTER drag message is a selection atom. It must be unique for the duration of the Drag & Drop transaction. In addition, the initiator must own the selection and must be ready to convert data from the early beginning of the drag operation, since the receiver can ask for a conversion dynamically during the drag to validate the operation.

When the pointer leaves a top level window, the initiator notifies the receiver with a XmTOP_LEVEL_LEAVE message.

XmTOP_LEVEL_LEAVE

Table: The XmTOP_LEVEL_LEAVE message send by the initiator.
Message User Data | Size | Description
data.b[0] | BYTE | Reason: XmTOP_LEVEL_LEAVE (0x01)
data.b[1] | BYTE | Byte Order: either 'B' (MSB first) or 'l' (LSB first).
data.b[2..3] | CARD16 | (DnD Flags: unused)
data.b[4..7] | CARD32 | Timestamp: set to the timestamp of the corresponding X event triggering this message.

A receiver never replies (echoes) the XmTOP_LEVEL_ENTER and XmTOP_LEVEL_LEAVE messages.

Next: 2. Pointer Motion Up: 3. The Drag Protocol Previous: 3. The Drag Protocol Contents Index