diff --git a/plugins/obs-vst/obs-vst.cpp b/plugins/obs-vst/obs-vst.cpp index d72bdfd68..2fae2a26f 100644 --- a/plugins/obs-vst/obs-vst.cpp +++ b/plugins/obs-vst/obs-vst.cpp @@ -40,12 +40,15 @@ static bool open_editor_button_clicked(obs_properties_t *props, { VSTPlugin *vstPlugin = (VSTPlugin *)data; - QMetaObject::invokeMethod(vstPlugin, "openEditor"); + if (vstPlugin && vstPlugin->vstLoaded()) { - obs_property_set_visible(obs_properties_get(props, OPEN_VST_SETTINGS), - false); - obs_property_set_visible(obs_properties_get(props, CLOSE_VST_SETTINGS), - true); + QMetaObject::invokeMethod(vstPlugin, "openEditor"); + + obs_property_set_visible( + obs_properties_get(props, OPEN_VST_SETTINGS), false); + obs_property_set_visible( + obs_properties_get(props, CLOSE_VST_SETTINGS), true); + } UNUSED_PARAMETER(props); UNUSED_PARAMETER(property); @@ -59,12 +62,15 @@ static bool close_editor_button_clicked(obs_properties_t *props, { VSTPlugin *vstPlugin = (VSTPlugin *)data; - QMetaObject::invokeMethod(vstPlugin, "closeEditor"); + if (vstPlugin && vstPlugin->vstLoaded() && vstPlugin->isEditorOpen()) { - obs_property_set_visible(obs_properties_get(props, OPEN_VST_SETTINGS), - true); - obs_property_set_visible(obs_properties_get(props, CLOSE_VST_SETTINGS), - false); + QMetaObject::invokeMethod(vstPlugin, "closeEditor"); + + obs_property_set_visible( + obs_properties_get(props, OPEN_VST_SETTINGS), true); + obs_property_set_visible( + obs_properties_get(props, CLOSE_VST_SETTINGS), false); + } UNUSED_PARAMETER(property); @@ -302,9 +308,14 @@ static obs_properties_t *vst_properties(void *data) bool close_settings_vis = false; if (data) { VSTPlugin *vstPlugin = (VSTPlugin *)data; - if (vstPlugin->isEditorOpen()) { - close_settings_vis = true; + if (!vstPlugin->vstLoaded()) { + close_settings_vis = false; open_settings_vis = false; + } else { + if (vstPlugin->isEditorOpen()) { + close_settings_vis = true; + open_settings_vis = false; + } } }