diff --git a/source/backend/CarlaBackend.h b/source/backend/CarlaBackend.h index a32ae8099..e6f67bf63 100644 --- a/source/backend/CarlaBackend.h +++ b/source/backend/CarlaBackend.h @@ -199,6 +199,11 @@ static const uint PLUGIN_HAS_INLINE_DISPLAY = 0x800; */ static const uint PLUGIN_HAS_CUSTOM_EMBED_UI = 0x1000; +/*! + * Plugin custom UI is a fake one that simply invokes an open file browser dialog. + */ +static const uint PLUGIN_HAS_CUSTOM_UI_USING_FILE_OPEN = 0x2000; + /** @} */ /* ------------------------------------------------------------------------------------------------------------ diff --git a/source/backend/plugin/CarlaPluginLV2.cpp b/source/backend/plugin/CarlaPluginLV2.cpp index e162638ea..cff6adedc 100644 --- a/source/backend/plugin/CarlaPluginLV2.cpp +++ b/source/backend/plugin/CarlaPluginLV2.cpp @@ -3281,6 +3281,8 @@ public: if (fUI.type == UI::TYPE_EMBED || fUI.type == UI::TYPE_EXTERNAL) pData->hints |= PLUGIN_NEEDS_UI_MAIN_THREAD; + else if (fFilePathURI.isNotEmpty()) + pData->hints |= PLUGIN_HAS_CUSTOM_UI_USING_FILE_OPEN; } if (LV2_IS_GENERATOR(fRdfDescriptor->Type[0], fRdfDescriptor->Type[1])) diff --git a/source/backend/plugin/CarlaPluginNative.cpp b/source/backend/plugin/CarlaPluginNative.cpp index e5f64639d..ff797b329 100644 --- a/source/backend/plugin/CarlaPluginNative.cpp +++ b/source/backend/plugin/CarlaPluginNative.cpp @@ -1433,6 +1433,8 @@ public: pData->hints |= PLUGIN_NEEDS_FIXED_BUFFERS; if (fDescriptor->hints & NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD) pData->hints |= PLUGIN_NEEDS_UI_MAIN_THREAD; + if (fDescriptor->hints & NATIVE_PLUGIN_NEEDS_UI_OPEN_SAVE) + pData->hints |= PLUGIN_HAS_CUSTOM_UI_USING_FILE_OPEN; if (fDescriptor->hints & NATIVE_PLUGIN_USES_MULTI_PROGS) pData->hints |= PLUGIN_USES_MULTI_PROGS; if (fDescriptor->hints & NATIVE_PLUGIN_HAS_INLINE_DISPLAY)