diff --git a/src/quick/items/qquickmousearea.cpp b/src/quick/items/qquickmousearea.cpp
index ad0a265035d0575053134875e01278395a8b0c2c..324331f28330345c3b077ae838c382d656cf967b 100644
--- a/src/quick/items/qquickmousearea.cpp
+++ b/src/quick/items/qquickmousearea.cpp
@@ -773,11 +773,7 @@ void QQuickMouseArea::mouseMoveEvent(QMouseEvent *event)
 
     // ### we should skip this if these signals aren't used
     // ### can GV handle this for us?
-    const bool isInside = contains(d->lastPos);
-    if (d->hovered && !isInside)
-        setHovered(false);
-    else if (!d->hovered && isInside)
-        setHovered(true);
+    setHovered(contains(d->lastPos));
 
 #ifndef QT_NO_DRAGANDDROP
     if (d->drag && d->drag->target()) {