diff --git a/include/GuiApplication.h b/include/GuiApplication.h index 16680934f..02fb6ed67 100644 --- a/include/GuiApplication.h +++ b/include/GuiApplication.h @@ -55,6 +55,7 @@ public: static GuiApplication* instance(); static void sigintHandler(int); + static bool isWayland(); #ifdef LMMS_BUILD_WIN32 static QFont getWin32SystemFont(); #endif diff --git a/plugins/VstBase/VstPlugin.cpp b/plugins/VstBase/VstPlugin.cpp index 5dbe7a698..f26245728 100644 --- a/plugins/VstBase/VstPlugin.cpp +++ b/plugins/VstBase/VstPlugin.cpp @@ -49,12 +49,12 @@ #include "AudioEngine.h" #include "ConfigManager.h" +#include "FileDialog.h" #include "GuiApplication.h" #include "LocaleHelper.h" #include "MainWindow.h" #include "PathUtil.h" #include "Song.h" -#include "FileDialog.h" #ifdef LMMS_BUILD_LINUX # include @@ -404,9 +404,8 @@ bool VstPlugin::processMessage( const message & _m ) { case IdVstPluginWindowID: m_pluginWindowID = _m.getInt(); - if( m_embedMethod == "none" - && ConfigManager::inst()->value( - "ui", "vstalwaysontop" ).toInt() ) + if (m_embedMethod == "none" && !gui::GuiApplication::isWayland() + && ConfigManager::inst()->value("ui", "vstalwaysontop").toInt()) { #ifdef LMMS_BUILD_WIN32 // We're changing the owner, not the parent, diff --git a/src/gui/GuiApplication.cpp b/src/gui/GuiApplication.cpp index 7e62a3141..292284b3c 100644 --- a/src/gui/GuiApplication.cpp +++ b/src/gui/GuiApplication.cpp @@ -79,6 +79,11 @@ GuiApplication* GuiApplication::instance() return s_instance; } +bool GuiApplication::isWayland() +{ + return QGuiApplication::platformName().contains("wayland"); +} + GuiApplication::GuiApplication()