diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 022aaa7e3b9bdcc404e185530779addf8a79d2d1..0b3d91ffe5e967090409166fbf051ea0dee55c70 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -1534,6 +1534,11 @@ void QQuickItemPrivate::setAccessibleFlagAndListener() } } +/*! +Clears all sub focus items from \a scope. +If \a focus is true, sets the scope's subFocusItem +to be this item. +*/ void QQuickItemPrivate::updateSubFocusItem(QQuickItem *scope, bool focus) { Q_Q(QQuickItem); diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 53b731b3f137726d1112c5076dbddba3c11dfa59..48e2aceebe873432e9380d73a053717c029a7edd 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -608,6 +608,11 @@ void QQuickWindowPrivate::translateTouchEvent(QTouchEvent *touchEvent) touchEvent->setTouchPoints(touchPoints); } +/*! +Set the focus inside \a scope to be \a item. +If the scope contains the active focus item, it will be changed to \a item. +Calls notifyFocusChangesRecur for all changed items. +*/ void QQuickWindowPrivate::setFocusInScope(QQuickItem *scope, QQuickItem *item, Qt::FocusReason reason, FocusOptions options) { Q_Q(QQuickWindow); @@ -627,13 +632,13 @@ void QQuickWindowPrivate::setFocusInScope(QQuickItem *scope, QQuickItem *item, Q QQuickItemPrivate *scopePrivate = scope ? QQuickItemPrivate::get(scope) : 0; QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item); - QQuickItem *oldActiveFocusItem = 0; QQuickItem *newActiveFocusItem = 0; QVarLengthArray<QQuickItem *, 20> changed; // Does this change the active focus? if (item == contentItem || (scopePrivate->activeFocus && item->isEnabled())) { + QQuickItem *oldActiveFocusItem = 0; oldActiveFocusItem = activeFocusItem; newActiveFocusItem = item; while (newActiveFocusItem->isFocusScope()