diff options
author | David Redondo <qt@david-redondo.de> | 2024-03-05 11:53:39 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2024-03-06 17:16:23 +0000 |
commit | be274b52838a75f557eda38c3fb37c8063c52cbe (patch) | |
tree | b9a6435dbcc4e28b09aaf81d55f54b425c8c9910 | |
parent | 2a54183beeece08f5ec6b361db48358c54ca0d92 (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.cpp | 5 |
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; |