Xatom_MOTIF_DRAG_RECEIVER_INFO)
ATOM_REFS_INIT ("XmTRANSFER_SUCCESS", Xatom_XmTRANSFER_SUCCESS)
ATOM_REFS_INIT ("XmTRANSFER_FAILURE", Xatom_XmTRANSFER_FAILURE)
+ /* Old OffiX (a.k.a. old KDE) drop protocol support. */
+ ATOM_REFS_INIT ("DndProtocol", Xatom_DndProtocol)
+ ATOM_REFS_INIT ("_DND_PROTOCOL", Xatom_DND_PROTOCOL)
};
enum
xm_drag_motion_reply dreply;
xm_drop_start_message smsg;
xm_drop_start_reply reply;
+ unsigned long kde_data;
if (event->type != ClientMessage)
return false;
}
}
+ if (((event->xclient.message_type
+ == dpyinfo->Xatom_DndProtocol)
+ || (event->xclient.message_type
+ == dpyinfo->Xatom_DND_PROTOCOL))
+ && event->xclient.format == 32
+ /* Check that the version of the old KDE protocol is new
+ enough to include coordinates. */
+ && event->xclient.data.l[4])
+ {
+ kde_data = (unsigned long) event->xclient.data.l[3];
+
+ *x_out = (kde_data & 0xffff);
+ *y_out = (kde_data >> 16 & 0xffff);
+
+ return true;
+ }
+
return false;
}
/* Atom used to determine whether or not the screen is composited. */
Atom Xatom_NET_WM_CM_Sn;
+ /* Atoms used by the Motif drag and drop protocols. */
Atom Xatom_MOTIF_WM_HINTS, Xatom_MOTIF_DRAG_WINDOW,
Xatom_MOTIF_DRAG_TARGETS, Xatom_MOTIF_DRAG_AND_DROP_MESSAGE,
Xatom_MOTIF_DRAG_INITIATOR_INFO, Xatom_MOTIF_DRAG_RECEIVER_INFO;
+ /* Special selections used by the Motif drop protocol to indicate
+ success or failure. */
Atom Xatom_XmTRANSFER_SUCCESS, Xatom_XmTRANSFER_FAILURE;
+ /* Atoms used by both versions of the OffiX DND protocol (the "old
+ KDE" protocol in x-dnd.el). */
+ Atom Xatom_DndProtocol, Xatom_DND_PROTOCOL;
+
/* The frame (if any) which has the X window that has keyboard focus.
Zero if none. This is examined by Ffocus_frame in xfns.c. Note
that a mere EnterNotify event can set this; if you need to know the