summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-08-27 04:43:46 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-08-27 04:43:46 (GMT)
commit219e2fa7ace74d87fda4ed8c3a2a75005fab10b9 (patch)
treee309b5968a0d45634c674dc9bd5ff10f4c9adce6 /src/gui
parentb888ba48306174fc365499885f395b1dd70efd09 (diff)
downloadQt-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.cpp18
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();
}