diff --git a/plugins/VstEffect/VstEffectControlDialog.cpp b/plugins/VstEffect/VstEffectControlDialog.cpp index ad2666392..ea2581349 100644 --- a/plugins/VstEffect/VstEffectControlDialog.cpp +++ b/plugins/VstEffect/VstEffectControlDialog.cpp @@ -64,7 +64,7 @@ VstEffectControlDialog::VstEffectControlDialog( VstEffectControls * _ctl ) : if (embed_vst) { if (! m_plugin->pluginWidget()) { - m_plugin->createUI(nullptr); + m_plugin->createUI(this); } m_pluginWidget = m_plugin->pluginWidget(); } diff --git a/plugins/vestige/vestige.cpp b/plugins/vestige/vestige.cpp index c54c6c3a8..9ea053e8e 100644 --- a/plugins/vestige/vestige.cpp +++ b/plugins/vestige/vestige.cpp @@ -107,10 +107,12 @@ public: void createUI( QWidget *parent ) override { Q_UNUSED(parent); - VstPlugin::createUI( nullptr ); if ( embedMethod() != "none" ) { m_pluginSubWindow.reset(new vstSubWin( gui->mainWindow()->workspace() )); + VstPlugin::createUI( m_pluginSubWindow.get() ); m_pluginSubWindow->setWidget(pluginWidget()); + } else { + VstPlugin::createUI( nullptr ); } } diff --git a/plugins/vst_base/VstPlugin.cpp b/plugins/vst_base/VstPlugin.cpp index 32230cd8d..d9d9cc9f7 100644 --- a/plugins/vst_base/VstPlugin.cpp +++ b/plugins/vst_base/VstPlugin.cpp @@ -656,6 +656,10 @@ void VstPlugin::createUI( QWidget * parent ) #ifdef LMMS_BUILD_LINUX if (m_embedMethod == "xembed" ) { + if (parent) + { + parent->setAttribute(Qt::WA_NativeWindow); + } QX11EmbedContainer * embedContainer = new QX11EmbedContainer( parent ); connect(embedContainer, SIGNAL(clientIsEmbedded()), this, SLOT(handleClientEmbed())); embedContainer->embedClient( m_pluginWindowID ); @@ -671,8 +675,6 @@ void VstPlugin::createUI( QWidget * parent ) container->setWindowTitle( name() ); m_pluginWidget = container; - - container->setFixedSize( m_pluginGeometry ); } bool VstPlugin::eventFilter(QObject *obj, QEvent *event)