summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Redondo <qt@david-redondo.de>2024-03-05 11:53:39 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2024-03-06 17:16:23 +0000
commitbe274b52838a75f557eda38c3fb37c8063c52cbe (patch)
treeb9a6435dbcc4e28b09aaf81d55f54b425c8c9910
parent2a54183beeece08f5ec6b361db48358c54ca0d92 (diff)
Handle drag leave when performing platform drag of docks or toolbars
The existing widget machinery works through mouse positions. In order to correctly update state when a drag moves outside of a window it needs to see a move outside of the window. When the platform drag leaves the window a move to the outside of the window is now faked to not keep the layout in the hovered state of the last move event. Fixes: QTBUG-122944 Change-Id: I348f5281a200b78e6be4f11b3c25339d052783a5 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit d7fe948fdb79e919065875410dba14275a2a7478) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 157f7b47e460a388baa6f162383462febb2a0877)
-rw-r--r--src/widgets/widgets/qmainwindow.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/widgets/widgets/qmainwindow.cpp b/src/widgets/widgets/qmainwindow.cpp
index 30176edd49..85353d9b4e 100644
--- a/src/widgets/widgets/qmainwindow.cpp
+++ b/src/widgets/widgets/qmainwindow.cpp
@@ -1300,6 +1300,11 @@ bool QMainWindow::event(QEvent *event)
event->accept();
return true;
}
+ case QEvent::DragLeave:
+ if (!d->layout->draggingWidget)
+ break;
+ d->layout->hover(d->layout->draggingWidget, pos() - QPoint(-1, -1));
+ return true;
#endif
default:
break;