spawn_window.c
static void sendXdndFinished(Display *disp, Window source, Window target)
{
	if (xdndState.xdndExchangeStarted && !xdndState.amISource) {
		// Declare message struct and populate its values
		XEvent message;
		memset(&message, 0, sizeof(message));
		message.xclient.type = ClientMessage;
		message.xclient.display = disp;
		message.xclient.window = target;
		message.xclient.message_type = XdndFinished;
		message.xclient.format = 32;
		message.xclient.data.l[0] = source;
		message.xclient.data.l[1] = 1;
		message.xclient.data.l[2] = XdndActionCopy;

		// Send it to target window
		if (XSendEvent(disp, target, False, 0, &message) == 0)
			philError("XSendEvent");
	}
}
// This is sent by the target when the exchange has completed
This is sent by the target when the exchange has completed
This is sent by the target when the exchange has completed
static void sendXdndFinished(Display *disp, Window source, Window target)
{
	if (xdndState.xdndExchangeStarted && !xdndState.amISource) {
		XEvent message;
		memset(&message, 0, sizeof(message));
		message.xclient.type = ClientMessage;
		message.xclient.display = disp;
		message.xclient.window = target;
		message.xclient.message_type = XdndFinished;
		message.xclient.format = 32;
		message.xclient.data.l[0] = source;
		message.xclient.data.l[1] = 1;
		message.xclient.data.l[2] = XdndActionCopy;
		if (XSendEvent(disp, target, False, 0, &message) == 0)
			philError("XSendEvent");
	}
}
static void sendXdndFinished ( Display * disp , Window source , Window target ) { if ( xdndState . xdndExchangeStarted && ! xdndState . amISource ) { XEvent message ; memset ( & message , 0 , sizeof ( message ) ) ; message . xclient . type = ClientMessage ; message . xclient . display = disp ; message . xclient . window = target ; message . xclient . message_type = XdndFinished ; message . xclient . format = 32 ; message . xclient . data . l [ 0 ] = source ; message . xclient . data . l [ 1 ] = 1 ; message . xclient . data . l [ 2 ] = XdndActionCopy ; if ( XSendEvent ( disp , target , False , 0 , & message ) == 0 ) philError ( " " ) ; } }
This is sent by the target when the exchange has completed
This is sent by the target when the exchange has completed
// Declare message struct and populate its values // Send it to target window