From b9ae71ae8f83bcd2b3805c09c655f8a7d9601629 Mon Sep 17 00:00:00 2001 From: ed Date: Tue, 25 May 2021 12:48:21 +0100 Subject: [PATCH] AudioProcessorEditor: Fixed a bug introduced in 5a59c92b causing editors to always be marked as resizable by the host when using the default ComponentBoundsConstrainer --- .../processors/juce_AudioProcessorEditor.cpp | 14 +++++++++++--- .../processors/juce_AudioProcessorEditor.h | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp index 30249c0a53..038fbb5d7c 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp @@ -73,7 +73,7 @@ void AudioProcessorEditor::initialise() // END SECTION A - setConstrainer (&defaultConstrainer); + attachConstrainer (&defaultConstrainer); resizeListener.reset (new AudioProcessorEditorListener (*this)); addComponentListener (resizeListener.get()); } @@ -124,8 +124,7 @@ void AudioProcessorEditor::setConstrainer (ComponentBoundsConstrainer* newConstr { if (constrainer != newConstrainer) { - constrainer = newConstrainer; - updatePeer(); + attachConstrainer (newConstrainer); if (constrainer != nullptr) resizableByHost = (newConstrainer->getMinimumWidth() != newConstrainer->getMaximumWidth() @@ -136,6 +135,15 @@ void AudioProcessorEditor::setConstrainer (ComponentBoundsConstrainer* newConstr } } +void AudioProcessorEditor::attachConstrainer (ComponentBoundsConstrainer* newConstrainer) +{ + if (constrainer != newConstrainer) + { + constrainer = newConstrainer; + updatePeer(); + } +} + void AudioProcessorEditor::attachResizableCornerComponent() { resizableCorner = std::make_unique (this, constrainer); diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h index c925540c90..af6a73eca3 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h @@ -211,6 +211,7 @@ private: void initialise(); void editorResized (bool wasResized); void updatePeer(); + void attachConstrainer (ComponentBoundsConstrainer*); void attachResizableCornerComponent(); //==============================================================================