ドロップのデスティネーション先がドラッグされたアイテムを受け取ると、選択されたアクションに固有のシグナルが発行されます。選択とは、例えば、ユーザーがShiftキーを押して、コピーではなく移動を指定することなどです。覚えておいてほしいのは、ユーザーが選べるアクションはdrag_dest_set()とdrag_source_set()を使って設定したものに限られるということです。
ソース元のウィジットは以下のシグナルをこの順序で発行します:
drag_begin: DragContextを提供します。
drag_motion: DragContextと座標を提供します。drag_status()メソッドを呼んで、どのターゲットが受け取られるかを指定することもできます。
drag_get: ドラッグされたデータのフォーマットinfoと、要求するデータを入れておくGtkSelectionData構造体を提供します。
drag_drop: DragContextと座標を提供します。
drag_end: DragContextを提供します。
ソース元がdrag_getシグナルを発行した後、デスティネーションは以下のシグナルを発行します:
drag_data_received: ドラッグされたデータのフォーマットinfoと、ドロップされたデータを保持するGtkSelectionData構造体を提供します。DragContextのdrag_finish()メソッドを呼び、操作が成功したかどうかを知らせるべきです。