The drag-data-received signal is emitted on the drop site when the dragged data has been received. If the data was received in order to determine whether the drop will be accepted, the handler is expected to call drag_status and not finish the drag. If the data was received in response to a "drag-drop" signal (and this is the last target to be received), the handler for this signal is expected to process the received data and then call drag_finish, setting the success parameter depending on whether the data was processed successfully.
The handler may inspect and modify drag_context->action before calling drag_finish, e.g. to implement Gdk::ACTION_ASK.