From 7860e6e539c5e77261c8a03bbccc6fe3c13dd0ad Mon Sep 17 00:00:00 2001 From: falkTX Date: Mon, 20 Jun 2022 11:34:07 +0100 Subject: [PATCH] Fix resize recursion when triggered via host Signed-off-by: falkTX --- src/CardinalUI.cpp | 3 ++- src/override/Window.cpp | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/CardinalUI.cpp b/src/CardinalUI.cpp index 0c453e9..f278746 100644 --- a/src/CardinalUI.cpp +++ b/src/CardinalUI.cpp @@ -46,6 +46,7 @@ namespace app { namespace window { void WindowSetPluginUI(Window* window, DISTRHO_NAMESPACE::UI* ui); void WindowSetMods(Window* window, int mods); + void WindowSetInternalSize(rack::window::Window* window, math::Vec size); } } @@ -610,7 +611,7 @@ protected: UI::onResize(ev); if (context->window != nullptr) - context->window->setSize(rack::math::Vec(ev.size.getWidth(), ev.size.getHeight())); + WindowSetInternalSize(context->window, rack::math::Vec(ev.size.getWidth(), ev.size.getHeight())); const double scaleFactor = getScaleFactor(); char sizeString[64]; diff --git a/src/override/Window.cpp b/src/override/Window.cpp index ff8f969..a49efdf 100644 --- a/src/override/Window.cpp +++ b/src/override/Window.cpp @@ -355,6 +355,11 @@ void Window::setSize(math::Vec size) { ui->setSize(internal->size.x, internal->size.y); } +void WindowSetInternalSize(rack::window::Window* const window, math::Vec size) { + size = size.max(WINDOW_SIZE_MIN); + window->internal->size = size; +} + void Window::run() { internal->frame = 0;