From 7e804fb10609aa72dd941eb20d46c18db38563d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lund=20Martsum?= Date: Wed, 31 Aug 2022 11:28:50 +0200 Subject: Fix dragging a docked QDockWidget [REG-fix] In 54f328f0e8205480749a6d8d2ebe0e58cb1cdb67 issues with dragging dock widgets between screens were solved. However, it only worked well if the widget was floating. It worked wrong when dragging out a docked widget. That is fixed by this patch. Fixes: QTBUG-106064 Change-Id: I8d486d30a334719a2931828464ccaceb8ba2e019 Reviewed-by: Axel Spoerl Reviewed-by: Volker Hilsheimer (cherry picked from commit f082458c4609dfa20fdfb8bfe3e625c311b145da) Reviewed-by: Qt Cherry-pick Bot --- src/widgets/widgets/qdockwidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp index 6072740db8..ff227bcedb 100644 --- a/src/widgets/widgets/qdockwidget.cpp +++ b/src/widgets/widgets/qdockwidget.cpp @@ -754,7 +754,7 @@ void QDockWidgetPrivate::initDrag(const QPoint &pos, bool nca) state = new QDockWidgetPrivate::DragState; state->pressPos = pos; state->globalPressPos = q->mapToGlobal(pos); - state->widgetInitialPos = q->pos(); + state->widgetInitialPos = q->isFloating() ? q->pos() : q->mapToGlobal(q->pos()); state->dragging = false; state->widgetItem = nullptr; state->ownWidgetItem = false; -- cgit v1.2.3