From 13469e65872dcfa0a68121f183860e5cfb054057 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Tue, 6 Jan 2026 18:52:59 +0100 Subject: [PATCH] Interface preferences: use main window screen to detect if skin fits --- src/preferences/dialog/dlgprefinterface.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/preferences/dialog/dlgprefinterface.cpp b/src/preferences/dialog/dlgprefinterface.cpp index 7cdc67e86a19..794c0038040c 100644 --- a/src/preferences/dialog/dlgprefinterface.cpp +++ b/src/preferences/dialog/dlgprefinterface.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -240,8 +241,19 @@ DlgPrefInterface::DlgPrefInterface( } QScreen* DlgPrefInterface::getScreen() const { - auto* pScreen = - mixxx::widgethelper::getScreen(*this); + QScreen* pScreen = nullptr; + const QWidgetList topLevelWidgets = QApplication::topLevelWidgets(); + for (QWidget* pWidget : topLevelWidgets) { + // Ignore other popups and hidden track menus + QMainWindow* pMainWindow = qobject_cast(pWidget); + if (pMainWindow) { + pScreen = mixxx::widgethelper::getScreen(*pMainWindow); + break; + } + } + VERIFY_OR_DEBUG_ASSERT(pScreen) { + pScreen = mixxx::widgethelper::getScreen(*this); + } if (!pScreen) { // Obtain the primary screen. This is necessary if no window is // available before the widget is displayed.