diff --git a/src/blackgui/guiutility.cpp b/src/blackgui/guiutility.cpp index c885ecc5c..17377544f 100644 --- a/src/blackgui/guiutility.cpp +++ b/src/blackgui/guiutility.cpp @@ -54,7 +54,8 @@ namespace BlackGui { // best choice is to check on frameless window CEnableForFramelessWindow *mw = dynamic_cast(w); - if (mw && mw->isMainApplicationWindow()) { return mw; } + if (!mw) { continue; } + if (mw->isMainApplicationWindow()) { return mw; } } return nullptr; } @@ -314,10 +315,11 @@ namespace BlackGui return rl; } - QPoint CGuiUtility::mainWidgetPosition() + QPoint CGuiUtility::mainWidgetGlobalPosition() { CEnableForFramelessWindow *mw = CGuiUtility::mainFramelessEnabledWindow(); - return (mw) ? mw->getWidget()->pos() : QPoint(); + if (!mw || !mw->getWidget()) { QPoint(); } + return mw->getWidget()->pos(); // is main window, so not mapToGlobal } QString CGuiUtility::replaceTabCountValue(const QString &oldName, int count) diff --git a/src/blackgui/guiutility.h b/src/blackgui/guiutility.h index 99e75fc4f..1a2e8de7d 100644 --- a/src/blackgui/guiutility.h +++ b/src/blackgui/guiutility.h @@ -73,7 +73,7 @@ namespace BlackGui static QWidgetList topLevelApplicationWidgetsWithName(); //! Position of main widget - static QPoint mainWidgetPosition(); + static QPoint mainWidgetGlobalPosition(); //! Replace count in name such as "stations (4)" static QString replaceTabCountValue(const QString &oldName, int count); diff --git a/src/blackgui/infoarea.cpp b/src/blackgui/infoarea.cpp index 77f6742c8..f1ab8b3f5 100644 --- a/src/blackgui/infoarea.cpp +++ b/src/blackgui/infoarea.cpp @@ -519,7 +519,7 @@ namespace BlackGui m_infoAreaFloating = floating; if (m_infoAreaFloating) { - QPoint p = CGuiUtility::mainWidgetPosition(); + QPoint p = CGuiUtility::mainWidgetGlobalPosition(); this->setWindowFlags(Qt::Dialog); this->setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint); this->move(p.rx() + 20, p.ry() + 20);