diff options
Diffstat (limited to 'src/quick/items/qquickitem.cpp')
-rw-r--r-- | src/quick/items/qquickitem.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 6afdc69291..3f0dae8070 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -6391,10 +6391,12 @@ void QQuickItem::setFocus(bool focus, Qt::FocusReason reason) while (scope && !scope->isFocusScope() && scope->parentItem()) scope = scope->parentItem(); if (d->window) { - if (focus) - QQuickWindowPrivate::get(d->window)->setFocusInScope(scope, this, reason); - else - QQuickWindowPrivate::get(d->window)->clearFocusInScope(scope, this, reason); + if (reason != Qt::PopupFocusReason) { + if (focus) + QQuickWindowPrivate::get(d->window)->setFocusInScope(scope, this, reason); + else + QQuickWindowPrivate::get(d->window)->clearFocusInScope(scope, this, reason); + } } else { // do the focus changes from setFocusInScope/clearFocusInScope that are // unrelated to a window |