From 39a09526870e7cd0b27402aca817a71306dc5c41 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 8 Nov 2012 12:45:08 +0100 Subject: Send enter to the child at the position of the QEnterEvent. This was apparently done so in each of the widget_.cpp in Qt 4.8. This then causes the cursor to be updated in dispatchEnterLeave() on Windows and Linux. Task-number: QTBUG-27871 Task-number: QTBUG-27585 Task-number: QTBUG-26424 Change-Id: Idf14cd96ccb36f7c2607853ed8b0024c36a5413c Reviewed-by: Oliver Wolff Reviewed-by: Miikka Heikkinen --- src/widgets/kernel/qwidgetwindow.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index c11e36312f..056eabd2f4 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -261,8 +261,10 @@ void QWidgetWindow::handleEnterLeaveEvent(QEvent *event) } } else { const QEnterEvent *ee = static_cast(event); - QApplicationPrivate::dispatchEnterLeave(m_widget, 0, ee->screenPos()); - qt_last_mouse_receiver = m_widget; + QWidget *child = m_widget->childAt(ee->pos()); + QWidget *receiver = child ? child : m_widget; + QApplicationPrivate::dispatchEnterLeave(receiver, 0, ee->screenPos()); + qt_last_mouse_receiver = receiver; } } -- cgit v1.2.3