private void drag_data_received ( int  widget, int  context, int x, int y, int  data, int info, int time){
void drag_data_received ( int  widget, int  context, int x, int y, int  data, int info, int time){
private void drag_data_received ( int /*long*/ widget, int /*long*/ context, int x, int y, int /*long*/ data, int info, int time){	DNDEvent event = new DNDEvent();	if (data == 0 || !setEventData(context, x, y, time, event)) {		keyOperation = -1;		return;	}	keyOperation = -1;		int allowedOperations = event.operations;		// Get data in a Java format		Object object = null;	TransferData transferData = new TransferData();	GtkSelectionData selectionData = new GtkSelectionData(); 	OS.memmove(selectionData, data, GtkSelectionData.sizeof);	if (selectionData.data != 0) {		transferData.type = selectionData.type;		transferData.length = selectionData.length;		transferData.pValue = selectionData.data;		transferData.format = selectionData.format;		for (int i = 0; i < transferAgents.length; i++) {			if (transferAgents[i].isSupportedType(transferData)) {				object = transferAgents[i].nativeToJava(transferData);				break;			}		}	}	if (object == null) {		selectedOperation = DND.DROP_NONE;	}		event.detail = selectedOperation;	event.dataType = transferData;	event.data = object;	selectedOperation = DND.DROP_NONE;	notifyListeners(DND.Drop, event);	if ((allowedOperations & event.detail) == event.detail) {		selectedOperation = event.detail;	}	//notify source of action taken	OS.gtk_drag_finish(context, selectedOperation != DND.DROP_NONE, selectedOperation== DND.DROP_MOVE, time); 				return;	}