VST vs. AU behaviour using DragAndDropContainer::performExternalDragDropOfFiles


#1

I have a mouseDown() function for a component.  In there I call DragAndDropContainer::performExternalDragDropOfFiles. 

On PC VST and Mac AU it works fine.  I get a single call to the mouse function and the drag works as expected. 

However - on the Mac using VST after the drag is complete the plugin still seems to be in 'drag' mode.  No matter where on the plugin I click it calls the mouseDown() function again and tries to start another drag. 

I can't work out Juce is suppose to find out that the drag has finished, or the mouse button has been lifted outside of Juce (??) and I suppose clear some flag somewhere down in MouseInputSource ... 

I'm still digging around trying to understand what goes on under the hood, but any pointers would greatly appreciated!  


#2

IIRC, that's supposed to be handled by OSX once the drag has begun, I don't think there's anything that the app has to do to make it work..


#3

It only seems to be a problem when the drag target is the host (Ableton and Reaper exhibit the same behaviour).  If I drag to the desktop, or even Skype, then the drag appears to finish normally. 

I can detect when it's happened using something like:

void MyComponent::mouseDrag(mouseevent) { 

if (!getLocalBounds().contains(mouseevent.getPosition())) do_something_to_reset_the_situation;

...

}

But it's a bit of a hack, and it's not obvious what the do_something ought to be.