mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
VST3 Client: Avoid returning real editor size until onSize has been called
This commit is contained in:
parent
384ddee376
commit
3edb072758
1 changed files with 34 additions and 30 deletions
|
|
@ -1844,6 +1844,7 @@ private:
|
|||
#endif
|
||||
|
||||
component = nullptr;
|
||||
lastReportedSize.reset();
|
||||
}
|
||||
|
||||
#if JUCE_LINUX || JUCE_BSD
|
||||
|
|
@ -1855,32 +1856,33 @@ private:
|
|||
|
||||
tresult PLUGIN_API onSize (ViewRect* newSize) override
|
||||
{
|
||||
if (newSize != nullptr)
|
||||
if (newSize == nullptr)
|
||||
{
|
||||
rect = convertFromHostBounds (*newSize);
|
||||
|
||||
if (component != nullptr)
|
||||
{
|
||||
component->setSize (rect.getWidth(), rect.getHeight());
|
||||
|
||||
#if JUCE_MAC
|
||||
if (cubase10Workaround != nullptr)
|
||||
{
|
||||
cubase10Workaround->triggerAsyncUpdate();
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
if (auto* peer = component->getPeer())
|
||||
peer->updateBounds();
|
||||
}
|
||||
}
|
||||
|
||||
return kResultTrue;
|
||||
jassertfalse;
|
||||
return kResultFalse;
|
||||
}
|
||||
|
||||
jassertfalse;
|
||||
return kResultFalse;
|
||||
lastReportedSize.reset();
|
||||
rect = convertFromHostBounds (*newSize);
|
||||
|
||||
if (component == nullptr)
|
||||
return kResultTrue;
|
||||
|
||||
component->setSize (rect.getWidth(), rect.getHeight());
|
||||
|
||||
#if JUCE_MAC
|
||||
if (cubase10Workaround != nullptr)
|
||||
{
|
||||
cubase10Workaround->triggerAsyncUpdate();
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
if (auto* peer = component->getPeer())
|
||||
peer->updateBounds();
|
||||
}
|
||||
|
||||
return kResultTrue;
|
||||
}
|
||||
|
||||
tresult PLUGIN_API getSize (ViewRect* size) override
|
||||
|
|
@ -1890,15 +1892,16 @@ private:
|
|||
return kResultFalse;
|
||||
#endif
|
||||
|
||||
if (size != nullptr && component != nullptr)
|
||||
{
|
||||
auto editorBounds = component->getSizeToContainChild();
|
||||
if (size == nullptr || component == nullptr)
|
||||
return kResultFalse;
|
||||
|
||||
*size = convertToHostBounds ({ 0, 0, editorBounds.getWidth(), editorBounds.getHeight() });
|
||||
return kResultTrue;
|
||||
}
|
||||
const auto editorBounds = component->getSizeToContainChild();
|
||||
const auto sizeToReport = lastReportedSize.has_value()
|
||||
? *lastReportedSize
|
||||
: convertToHostBounds ({ 0, 0, editorBounds.getWidth(), editorBounds.getHeight() });
|
||||
|
||||
return kResultFalse;
|
||||
lastReportedSize = *size = sizeToReport;
|
||||
return kResultTrue;
|
||||
}
|
||||
|
||||
tresult PLUGIN_API canResize() override
|
||||
|
|
@ -2275,6 +2278,7 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
ScopedJuceInitialiser_GUI libraryInitialiser;
|
||||
std::optional<ViewRect> lastReportedSize;
|
||||
|
||||
#if JUCE_LINUX || JUCE_BSD
|
||||
SharedResourcePointer<detail::MessageThread> messageThread;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue