This change allows mouse events (including enter and exit events) to
reach unfocused views on macOS. This matches the behaviour of unfocused
windows on Linux and Windows, where components paint in their "hovered"
states even when the application window is in the background.
As a byproduct of using tracking areas on macOS, we can remove the fake
mouse move generator.
On some Linux distros, the audio settings dialog was opening with the
wrong size and position. The culprit seems to be the call to setSize()
which was called inside resized(). We now try to avoid calling setSize()
if we would do so inside a resized() call.
Previously, the AudioProcessorPlayer would always match the
AudioProcessor's bus configuration to the requested bus configuration,
even if the processor did not explicitly support the requested
configuration.
Now, if the requested configuration has one or fewer input channels, the
AudioProcessorPlayer will attempt to find a multi-input channel layout
for which `checkBusesLayoutSupported` returns true, and will use such a
layout if it exists. Otherwise, as a last resort, it will fall back to
using the channel layout requested by the AudioProcessorPlayer.
If the AudioProcessorPlayer has no input channels, but the wrapped
processor is initialised with multiple input channels, each of these
inputs will be fed with silence.
If the AudioProcessorPlayer has a single input channel, but the wrapped
processor is initialised with multiple input channels, each input
channel will be fed with a copy of the AudioProcessorPlayer's mono
input.