diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dc3eb74..983ef607 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Fixed + +- Fixed a regression from yabridge 3.5.1 where certain non-standard compliant + VST3 plugins wouldn't resize to their correct size when opening the editor. + This affects **Kontakt**, and it was caused by reverting just a little bit too + much code in the regression fix from the previous release. + ## [3.5.1] - 2021-06-31 ### Added diff --git a/src/wine-host/bridges/vst3.cpp b/src/wine-host/bridges/vst3.cpp index 2a2f50c2..58601ae2 100644 --- a/src/wine-host/bridges/vst3.cpp +++ b/src/wine-host/bridges/vst3.cpp @@ -739,9 +739,17 @@ void Vst3Bridge::run() { editor_instance.get_win32_handle(), type.c_str()); - // Get rid of the editor again if the plugin didn't - // embed itself in it - if (result != Steinberg::kResultOk) { + // Set the window's initial size according to what the + // plugin reports. Otherwise get rid of the editor again + // if the plugin didn't embed itself in it. + if (result == Steinberg::kResultOk) { + Steinberg::ViewRect size{}; + if (instance.plug_view_instance->plug_view->getSize( + &size) == Steinberg::kResultOk) { + instance.editor->resize(size.getWidth(), + size.getHeight()); + } + } else { instance.editor.reset(); }