diff --git a/src/quick/items/qquickcanvas.cpp b/src/quick/items/qquickcanvas.cpp index 8e536a45dd..6c964826fe 100644 --- a/src/quick/items/qquickcanvas.cpp +++ b/src/quick/items/qquickcanvas.cpp @@ -539,7 +539,7 @@ void QQuickCanvasPrivate::setFocusInScope(QQuickItem *scope, QQuickItem *item, F q->sendEvent(oldActiveFocusItem, &event); QQuickItem *afi = oldActiveFocusItem; - while (afi != scope) { + while (afi && afi != scope) { if (QQuickItemPrivate::get(afi)->activeFocus) { QQuickItemPrivate::get(afi)->activeFocus = false; changed << afi; @@ -635,7 +635,7 @@ void QQuickCanvasPrivate::clearFocusInScope(QQuickItem *scope, QQuickItem *item, q->sendEvent(oldActiveFocusItem, &event); QQuickItem *afi = oldActiveFocusItem; - while (afi != scope) { + while (afi && afi != scope) { if (QQuickItemPrivate::get(afi)->activeFocus) { QQuickItemPrivate::get(afi)->activeFocus = false; changed << afi; diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 0ebacf7ff8..9f82c7e37c 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -1632,7 +1632,7 @@ void QQuickItemPrivate::updateSubFocusItem(QQuickItem *scope, bool focus) // Correct focus chain in scope if (oldSubFocusItem) { QQuickItem *sfi = scopePrivate->subFocusItem->parentItem(); - while (sfi != scope) { + while (sfi && sfi != scope) { QQuickItemPrivate::get(sfi)->subFocusItem = 0; sfi = sfi->parentItem(); } @@ -1641,7 +1641,7 @@ void QQuickItemPrivate::updateSubFocusItem(QQuickItem *scope, bool focus) if (focus) { scopePrivate->subFocusItem = q; QQuickItem *sfi = scopePrivate->subFocusItem->parentItem(); - while (sfi != scope) { + while (sfi && sfi != scope) { QQuickItemPrivate::get(sfi)->subFocusItem = q; sfi = sfi->parentItem(); }