summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@nokia.com>2011-05-11 14:40:01 +0200
committerSamuel Rødal <samuel.rodal@nokia.com>2011-05-11 14:40:01 +0200
commit47b36ae639ba61969b0190bc812c9508393c5ed5 (patch)
tree2bbe108de38ff3372c1f238c84df251a368eac21
parented2a2dc6dae0a2523cecfd272609d322ace16145 (diff)
Deliver leave event to proper widget (not the top-level).
-rw-r--r--src/widgets/kernel/qwidgetwindow_qpa.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/widgets/kernel/qwidgetwindow_qpa.cpp b/src/widgets/kernel/qwidgetwindow_qpa.cpp
index a63a6499fa..510614e5e3 100644
--- a/src/widgets/kernel/qwidgetwindow_qpa.cpp
+++ b/src/widgets/kernel/qwidgetwindow_qpa.cpp
@@ -106,7 +106,8 @@ QPointer<QWidget> qt_last_mouse_receiver = 0;
void QWidgetWindow::handleEnterLeaveEvent(QEvent *event)
{
if (event->type() == QEvent::Leave) {
- QApplicationPrivate::dispatchEnterLeave(0, m_widget);
+ QWidget *leave = qt_last_mouse_receiver ? qt_last_mouse_receiver.data() : m_widget;
+ QApplicationPrivate::dispatchEnterLeave(0, leave);
qt_last_mouse_receiver = 0;
} else {
QApplicationPrivate::dispatchEnterLeave(m_widget, 0);