From 2e6eac45bd1d24dbba83820f11bf6abd69019cdf Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 3 Sep 2019 00:43:59 +0200 Subject: [PATCH] If using SHIFT and navigator button reset to screen center --- src/blackgui/dockwidget.cpp | 12 +++++++++++- src/blackgui/infoarea.cpp | 2 +- src/swiftguistandard/swiftguistdinit.cpp | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/blackgui/dockwidget.cpp b/src/blackgui/dockwidget.cpp index 20d009a76..2c347ff75 100644 --- a/src/blackgui/dockwidget.cpp +++ b/src/blackgui/dockwidget.cpp @@ -267,6 +267,15 @@ namespace BlackGui } if (shift && floating) { this->resetPosition(); } + if (floating) + { + // check where we are, otherwise reset if NOT appropriate + const QPoint p = this->rect().topLeft(); + if (p.x() < 1 || p.y() < 1) + { + this->resetPosition(); + } + } } void CDockWidget::toggleVisibility() @@ -685,7 +694,8 @@ namespace BlackGui if (!sGui) { return; } // pos can be null during init - QPoint pos = CGuiUtility::mainWidgetGlobalPosition(); + QWidget *mw = CGuiUtility::mainApplicationWidget(); + QPoint pos = mw && mw->isVisible() ? CGuiUtility::mainWidgetGlobalPosition() : QPoint(); if (pos.isNull()) { pos = CGuiApplication::currentScreen()->geometry().center() - this->rect().center(); diff --git a/src/blackgui/infoarea.cpp b/src/blackgui/infoarea.cpp index d26cb720b..a77c6c509 100644 --- a/src/blackgui/infoarea.cpp +++ b/src/blackgui/infoarea.cpp @@ -575,7 +575,7 @@ namespace BlackGui if (init) { // float - QPoint offset(i * 25, i * 20); + const QPoint offset(i * 10, i * 10); // after->setVisible(false); // after->setFloating(true); after->setOffsetWhenFloating(offset); diff --git a/src/swiftguistandard/swiftguistdinit.cpp b/src/swiftguistandard/swiftguistdinit.cpp index 8d8626a53..a136d842b 100644 --- a/src/swiftguistandard/swiftguistdinit.cpp +++ b/src/swiftguistandard/swiftguistdinit.cpp @@ -111,7 +111,7 @@ void SwiftGuiStd::init() // navigator m_navigator->addAction(this->getToggleWindowVisibilityAction(m_navigator.data())); - m_navigator->addActions(ui->comp_MainInfoArea->getInfoAreaToggleFloatingActions(m_navigator.data())); + m_navigator->addActions(ui->comp_MainInfoArea->getInfoAreaToggleFloatingActions(m_navigator.data())); // here we add the actions for the main windows m_navigator->addAction(this->getWindowNormalAction(m_navigator.data())); m_navigator->addAction(this->getWindowMinimizeAction(m_navigator.data())); m_navigator->addAction(this->getToggleStayOnTopAction(m_navigator.data()));