rem: WMScreen *scr = sourceScreen(info);
context: processMotion(WMDraggingInfo *info, Window windowUnderDrag, WMPoint *mousePos){    WMScreen *scr = sourceScreen(info);    Window newDestination = findDestination(info, mousePos);    W_DragSourceStopTimer();    if (newDestination != XDND_DEST_WIN(info)) {        recolorCursor(info, False);        if (XDND_DEST_WIN(info) != None) {            /* leaving a xdnd window */            sendLeaveMessage(info);        }        XDND_DEST_WIN(info) = newDestination;        XDND_SOURCE_STATE(info) = idleState;        XDND_DEST_ACTION(info) = None;        XDND_NO_POS_ZONE(info).size.width = 0;        XDND_NO_POS_ZONE(info).size.height = 0;        if (newDestination != None) {            /* entering a xdnd window */            if (! sendEnterMessage(info)) {                XDND_DEST_WIN(info) = None;                return;            }            W_DragSourceStartTimer(info);        }    } else {        if (XDND_DEST_WIN(info) != None) {            if (! sendPositionMessage(info, mousePos)) {                XDND_DEST_WIN(info) = None;                return;            }            W_DragSourceStartTimer(info);        }    }}