From 7a852f700fb7e0b8211c95ab4e12a7ab2efb0173 Mon Sep 17 00:00:00 2001 From: Sergio Martins Date: Fri, 22 May 2020 12:15:24 +0100 Subject: [PATCH] Save floating geometry right before starting a drag so if you drop, then set floating again it goes to the original floating position --- src/private/DragController.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/private/DragController.cpp b/src/private/DragController.cpp index 216e2a55..cd857e42 100644 --- a/src/private/DragController.cpp +++ b/src/private/DragController.cpp @@ -175,6 +175,12 @@ StateDragging::~StateDragging() = default; void StateDragging::onEntry(QEvent *) { + if (DockWidgetBase *dw = q->m_draggable->singleDockWidget()) { + // When we start to drag a floating window which has a single dock widget, we save the position + if (dw->isFloating()) + dw->saveLastFloatingGeometry(); + } + q->m_windowBeingDragged = q->m_draggable->makeWindow(); if (q->m_windowBeingDragged) { qCDebug(state) << "StateDragging entered. m_draggable=" << q->m_draggable << "; m_windowBeingDragged=" << q->m_windowBeingDragged->floatingWindow();