I took a closer look and experimented with an adaptation of scotchi’s patch [1] to develop.
Using the XdndProxy it’s possible to hijack the DND messages from the plugin window’s parent but I don’t think that’s something we should do in general
- right now it only works in Bitwig Studio, not even in Waveform (Tracktion) anymore
- the plugin window’s parent is created by the DAW, and hijacking DND calls from it may be causing problems down the line
The reason this isn’t very reliable is that it’s not even sure that the plugin window’s parent is receiving the DND messages. It could be the parent’s parent, or like in the case of AudioPluginHost’s, a window in which the plugin window’s parent is embedded.
Since this window hierarchy is managed by the DAWs, I don’t see a way to cleanly and reliably solve the Linux DND problem entirely from the plugin side.
[1] Bug + Patch: Implements drag and drop for plugin windows on Linux