The following was observed for a VST3 plugin hosted in Live 11.1 with
auto-scaling disabled:
- It never calls setContentScaleFactor on the plugin's UI, so the
wrapper has to check the current display on a timer and update the
current scale factor when necessary.
- It calls canResize on the plugin view after opening it, but doesn't
seem to respect the result of this call. According to the VST3
documentation, a host is supposed to only call checkSizeConstraint
during a live resize operation (which should only happen if the plugin
reports it can resize), but Live calls this function every time the
user drags the editor. It also passes the result of this function to
onSize, whether or not checkSizeConstraints reported success.
- When dragging an editor between displays, Live will continue to call
checkSizeConstraint and onSize with the editor’s old size in physical
pixels. In some cases, JUCE's "scale factor check" timer callback
fires, resizes the view to the correct size, and then Live
asynchronously calls onSize again with the editor's old size in
physical pixels, resulting in the editor being set to the wrong
logical size.
This patch ensures that checkSizeConstraint always returns the current
size of a nonResizable editor. This means that the logical size of the
editor should not change when the result of checkSizeContraint is used
to resize the window.
When calling NullCheckedInvocation::invoke with a capture-less lambda,
GCC 9.3 determines that the expression
std::declval<TheLambda>() != nullptr
is well-formed, and uses the version of invoke containing a nullptr
check. However, the compiler is also able to determine that this
expression can never be false, and emits a warning.
Previously it was possible to have a dangling resource map. In that case
opening an AU from a file that did not have a resource map would lead to
using the previously unclosed map and attempting to load the previous
plugin again.
fc378aaf9a introduced a regression where
plugins with no audio channels (such as MIDI FX plugins) would receive
an audio buffer with a length-in-samples of '0', rather than the actual
block length.
This change also allows the plugin to receive discrete layouts in hosts
that support them, while also maintaining support for
AudioChannelLayoutTags in Logic.
With clang 13.0.0, and Apple clang version 13.1.6 (clang-1316.0.21.2),
the following code fails to compile with `-std=c++20 -O3 -msse3`:
#include <immintrin.h>
auto test (__m128 a)
{
return _mm_hadd_ps (_mm_hadd_ps (a, a), a);
}
This partially reverts f43784dc: "macOS: Propagate focus loss message when resigning key window status and only grab focus if window can become the key window"
The change introduced in 92f350e617 led to
a regression in the MoveEndpointByUnit function. In this case, a
backward movement by a single character *should* move the endpoint as
long as it remains within the text range.
The issue addressed by the faulty commit is better fixed by
special-casing the 'character' unit case in the ExpandToEnclosingUnit
function.