Specify what compositors should do when wl_data_device_manager::get_data_device is called multiple times for the same seat
The data device spec states:
There is one wl_data_device per seat which can be obtained from the global wl_data_device_manager singleton.
However, the data device manager spec states for
Create a new data device for a given seat.
So if a client calls
wl_data_device_manager::get_data_device multiple times, it's not entirely clear what the compositor should do. If a client attached several
wl_data_device_listeners to different data devices, should they all still receive events?
Other Wayland protocols AFAICS handle similar situations with a protocol error.
Weston and Mutter currently take only the last created data device into account, however for Mutter there's currently a bug concerning this, causing it to toggle between data devices randomly.
I think it would be good to clarify what a client can expect in this scenario, and all compositors doing the same.