summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorDavid Redondo <qt@david-redondo.de>2024-03-05 11:53:39 +0100
committerAxel Spoerl <axel.spoerl@qt.io>2024-03-05 16:58:14 +0000
commitd7fe948fdb79e919065875410dba14275a2a7478 (patch)
treecee89c0daf283683dc3a8c0e7e264bc98f6115c5 /src/widgets
parentd8a6a9bfcbaec96156751c0ecaf2aa78e4e8c9e8 (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 Pick-to: 6.7 6.6 Change-Id: I348f5281a200b78e6be4f11b3c25339d052783a5 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Diffstat (limited to 'src/widgets')
-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;