diff --git a/src/blackgui/guiapplication.cpp b/src/blackgui/guiapplication.cpp index ead148e24..959b6afe9 100644 --- a/src/blackgui/guiapplication.cpp +++ b/src/blackgui/guiapplication.cpp @@ -1177,20 +1177,33 @@ namespace BlackGui if (this->isShuttingDown()) { return; } QMainWindow *w = sGui->mainApplicationWindow(); if (!w) { return; } + m_frontBack = true; w->showNormal(); // bring window to top on OSX w->raise(); // bring window from minimized state on OSX - w->activateWindow(); // bring window to front/unminimize on windows + + // In order to show also on top if another window is (permanent) on top + if (!CGuiUtility::staysOnTop(w)) + { + CGuiUtility::stayOnTop(true, w); + emit this->alwaysOnTop(true); + } + + // w->activateWindow(); // bring window to front/unminimize on windows } void CGuiApplication::windowToBack() { if (this->isShuttingDown()) { return; } - m_frontBack = false; QMainWindow *w = this->mainApplicationWindow(); if (!w) { return; } - if (CGuiUtility::staysOnTop(w)) { CGuiUtility::stayOnTop(false, w); } + m_frontBack = false; + if (CGuiUtility::staysOnTop(w)) + { + CGuiUtility::stayOnTop(false, w); + emit this->alwaysOnTop(false); + } w->lower(); } diff --git a/src/blackgui/guiutility.cpp b/src/blackgui/guiutility.cpp index 7001e78ed..937e78eba 100644 --- a/src/blackgui/guiutility.cpp +++ b/src/blackgui/guiutility.cpp @@ -512,7 +512,7 @@ namespace BlackGui flags |= Qt::WindowStaysOnTopHint; } widget->setWindowFlags(flags); - widget->show(); + widget->show(); // without that the window sometimes just disappears return Qt::WindowStaysOnTopHint & flags; } @@ -531,6 +531,7 @@ namespace BlackGui // flags |= Qt::WindowStaysOnBottomHint; } widget->setWindowFlags(flags); + widget->show(); // without that the window sometimes just disappears return onTop; } @@ -552,7 +553,7 @@ namespace BlackGui Q_ASSERT_X(ok, Q_FUNC_INFO, "malformed number"); const int b = parts.at(3).toInt(&ok); Q_ASSERT_X(ok, Q_FUNC_INFO, "malformed number"); - Q_UNUSED(ok); + Q_UNUSED(ok) return QMargins(l, t, r, b); }