rem: char* msgTypeName = XGetAtomName(scr->display, messageType);
context: W_HandleDNDClientMessage(WMView *toplevel, XClientMessageEvent *event){    WMScreen *scr = W_VIEW_SCREEN(toplevel);    WMDraggingInfo *info = &scr->dragInfo;    Atom messageType = event->message_type;    char* msgTypeName = XGetAtomName(scr->display, messageType);#ifdef XDND_DEBUG    if (msgTypeName != NULL)        printf("event type = %s\n", msgTypeName);    else        printf("pb with event type !\n");#endif    /* Messages from destination to source */    if (messageType == scr->xdndStatusAtom        || messageType == scr->xdndFinishedAtom) {        W_DragSourceStopTimer();        W_DragSourceStateHandler(info, event);        return;    }    /* Messages from source to destination */    if (messageType == scr->xdndEnterAtom) {        W_DragDestinationStopTimer();        W_DragDestinationStoreEnterMsgInfo(info, toplevel, event);        if (VERSION_INFO(info) <= XDND_VERSION) {            if (XDND_DEST_VIEW_STORED(info)) {                /* xdndPosition previously received on xdnd aware view */                W_DragDestinationStateHandler(info, event);                return;            } else {                W_DragDestinationStartTimer(info);                return;            }        } else {            wwarning("received dnd enter msg with unsupported version %i",                     VERSION_INFO(info));            W_DragDestinationCancelDropOnEnter(toplevel, info);            return;        }    }    if (messageType == scr->xdndPositionAtom) {        W_DragDestinationStopTimer();        W_DragDestinationStorePositionMsgInfo(info, toplevel, event);        W_DragDestinationStateHandler(info, event);        return;    }    if (messageType == scr->xdndSelectionAtom        || messageType == scr->xdndDropAtom) {        W_DragDestinationStopTimer();        W_DragDestinationStateHandler(info, event);        return;    }    if (messageType == scr->xdndLeaveAtom) {        /* conclude drop operation, and clear dragging info */        W_DragDestinationStopTimer();        handleLeaveMessage(info);    }}