diff options
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 4 | ||||
-rw-r--r-- | tests/auto/quick/qquickitem/tst_qquickitem.cpp | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 6a57553b21..446573aae8 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -2152,7 +2152,9 @@ bool QQuickWindowPrivate::deliverHoverEvent(QQuickItem *item, const QPointF &sce QList<QQuickItem *> children = itemPrivate->paintOrderChildItems(); for (int ii = children.count() - 1; ii >= 0; --ii) { QQuickItem *child = children.at(ii); - if (!child->isVisible() || !child->isEnabled() || QQuickItemPrivate::get(child)->culled) + if (!child->isVisible() || QQuickItemPrivate::get(child)->culled) + continue; + if (!child->isEnabled() && !QQuickItemPrivate::get(child)->subtreeHoverEnabled) continue; if (deliverHoverEvent(child, scenePos, lastScenePos, modifiers, timestamp, accepted)) return true; diff --git a/tests/auto/quick/qquickitem/tst_qquickitem.cpp b/tests/auto/quick/qquickitem/tst_qquickitem.cpp index 0c92d0454e..61780fc405 100644 --- a/tests/auto/quick/qquickitem/tst_qquickitem.cpp +++ b/tests/auto/quick/qquickitem/tst_qquickitem.cpp @@ -1622,7 +1622,7 @@ void tst_qquickitem::hoverEvent() QTest::mouseMove(window, inside); QTest::mouseMove(window, outside); - const bool shouldReceiveHoverEvents = visible && enabled && acceptHoverEvents; + const bool shouldReceiveHoverEvents = visible && acceptHoverEvents; if (shouldReceiveHoverEvents) { QCOMPARE(item->hoverEnterCount, 1); QCOMPARE(item->hoverMoveCount, 2); |