diff --git a/src/plugin/bridges/clap-impls/plugin-proxy.cpp b/src/plugin/bridges/clap-impls/plugin-proxy.cpp index d8a041a2..de5cdc18 100644 --- a/src/plugin/bridges/clap-impls/plugin-proxy.cpp +++ b/src/plugin/bridges/clap-impls/plugin-proxy.cpp @@ -236,9 +236,6 @@ clap_plugin_proxy::plugin_get_extension(const struct clap_plugin* plugin, assert(plugin && plugin->plugin_data && id); auto self = static_cast(plugin->plugin_data); - // TODO: When implementing the GUI option, add a `clap_no_scaling` option to - // disable HiDPI scaling just like we have for VST3. Or rename the - // existing one. const void* extension_ptr = nullptr; if (self->supported_extensions_.supports_audio_ports && strcmp(id, CLAP_EXT_AUDIO_PORTS) == 0) { diff --git a/src/wine-host/bridges/clap.cpp b/src/wine-host/bridges/clap.cpp index e5cdfd8b..bccd07a0 100644 --- a/src/wine-host/bridges/clap.cpp +++ b/src/wine-host/bridges/clap.cpp @@ -420,12 +420,22 @@ void ClapBridge::run() { -> clap::ext::gui::plugin::SetScale::Response { const auto& [instance, _] = get_instance(request.instance_id); - return main_context_ - .run_in_context([&, plugin = instance.plugin.get(), - gui = instance.extensions.gui]() { - return gui->set_scale(plugin, request.scale); - }) - .get(); + if (config_.editor_disable_host_scaling) { + std::cerr << "The host requested the editor GUI to be " + "scaled by a factor of " + << request.scale + << ", but the 'editor_disable_host_scaling' " + "option is enabled. Ignoring the request." + << std::endl; + return false; + } else { + return main_context_ + .run_in_context([&, plugin = instance.plugin.get(), + gui = instance.extensions.gui]() { + return gui->set_scale(plugin, request.scale); + }) + .get(); + } }, [&](const clap::ext::gui::plugin::GetSize& request) -> clap::ext::gui::plugin::GetSize::Response {