xdg-toplevel-drag does not specify how to handle stalled sessions
This was raised while implementing/reviewing the protocol on Mutter [1].
In cases where the dnd session is suddenly stopped by, for example, destroying the associated data source object, it's not clear what's expected how xdg-toplevel-drag should behave. The only related statement in the protocol is:
Destroying data_source while a toplevel is attached to the xdg_toplevel_drag is undefined.
Which does not cover, for example, the case where there was (still) no toplevel attached when the data source was destroyed, and then xdg_toplevel_drag_v1.attached
is issued. A common pattern used in other protocols would be to make any request on it to result in protocol error events.