diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-08-27 04:43:46 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-08-27 04:43:46 (GMT) |
commit | 219e2fa7ace74d87fda4ed8c3a2a75005fab10b9 (patch) | |
tree | e309b5968a0d45634c674dc9bd5ff10f4c9adce6 /src/gui | |
parent | b888ba48306174fc365499885f395b1dd70efd09 (diff) | |
download | Qt-219e2fa7ace74d87fda4ed8c3a2a75005fab10b9.zip Qt-219e2fa7ace74d87fda4ed8c3a2a75005fab10b9.tar.gz Qt-219e2fa7ace74d87fda4ed8c3a2a75005fab10b9.tar.bz2 |
Fixup 928e81b68e0b695662c7ee3dd0bfa409a7ca1ffd
I messed up when I reapplied this patch to the branch head.
This also adds an extra test for the case fixed.
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/graphicsview/qgraphicsscene.cpp | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp index 73dba7b..af137e7 100644 --- a/src/gui/graphicsview/qgraphicsscene.cpp +++ b/src/gui/graphicsview/qgraphicsscene.cpp @@ -602,7 +602,7 @@ void QGraphicsScenePrivate::setFocusItemHelper(QGraphicsItem *item, QGraphicsItem *oldRootLevelFocusItem = focusItem->d_ptr->rootLevelFocusItem(); - if (oldRootLevelFocusItem != itemRootLevelFocusItem) + if (oldRootLevelFocusItem != itemRootLevelFocusItem) oldRootLevelFocusItem->d_ptr->setItemFocusedInScope(false); focusItem = 0; @@ -2374,22 +2374,10 @@ void QGraphicsScenePrivate::addItem(QGraphicsItem *item, // Ensure that newly added items that have subfocus set, gain // focus automatically if there isn't a focus item already. - if (!focusItem && item->focusItem()) + if (!focusItem && item->focusItem() || + focusScope && !focusScope->d_ptr->focusScopeItem && item->focusItem()) item->focusItem()->setFocus(); - // Ensure that focus scopes set themselves up at add time - if (item->d_ptr->itemIsFocusedInScope) { - if (focusScope && !focusScope->d_ptr->focusScopeItem) { - item->setFocus(); - } else if (!(focusScope && focusScope->d_ptr->focusScopeItem == item) && - !(focusItem && focusItem->d_ptr->rootLevelFocusItem() == item)) { - // We unset the focused in scope variable in this item if: - // It's not scope focused in the closest focus scope, and - // It's not the root-level item for the globally focused item - item->d_ptr->setItemFocusedInScope(false); - } - } - updateInputMethodSensitivityInViews(); } |