Hi JUCE team,
having some trouble with the mosueMove (…) in VST3 in Plugin Host, it gets only called on a mouse down event not on a mouse move.
To reproduce, make a new Plugin with the Projucer and add this to the Editor and Debug with Plugin Host in VST3
void mouseMove (const MouseEvent& e) override
DBG ("mouse moved");
The weird thing is, it works with the Demo Plugin project, but not with a new generated one.
I’m on latest develop with a freshly built Projucer and freshly built Plugin Host, Mac OS X 10.11.4, XCode 7.3.1
There’s an option in the Projucer - “Plugin editor requires keyboard focus”. This is enabled for the Demo Plugin project but disabled by default. Does selecting this option fix the problem for you?
ah yes, it does, I checked the settings, but missed that. Thanks.
But the setting name still seems a bit unrelated, maybe change the name of the setting, if this is the case for more DAWs…
I agree that this isn’t a very satisfactory fix! I’ll dig into the code to find out what’s going on.
It appears that we’re at the mercy of the host. The JUCE Demo Host behaves in the same way as Ableton.
For a VST plug-in, for example, the only difference between having “Plugin editor requires keyboard focus” selected or not is the response to the “effKeysRequired” call from the host. So it looks like this is triggering different mouse behaviour too.
alright it’s fine for me to leave this option on. (Maybe add a small text in Projucers Tooltip explaining it) But what’s still an issue that after opening the plugin I need to click once into the plugin for any hover effects to work.(mouseMove, etc. ) I’ve tried different plugins from other non JUCE manufacturers and their hover effects work right after opening (FabFilter for example).
For all JUCE plugins that does not seem the case, is there any known hack how to do this?
There is a hack, and I’ve just added it to the develop branch - https://github.com/julianstorer/JUCE/commit/08b2116c2bf0be2af1ed3ec7d2e650a4e964ad9b. This works around the default OS X windowing behaviour.