diff options
author | David Boddie <dboddie@trolltech.com> | 2010-07-16 15:46:21 (GMT) |
---|---|---|
committer | David Boddie <dboddie@trolltech.com> | 2010-07-16 15:46:21 (GMT) |
commit | 6b1b666574d6e27efdd3b243de8815a5278c3666 (patch) | |
tree | 7a5ac02fe569b3fc497ca8d0a333d10587eb3567 /src/gui/graphicsview/qgraphicsitem.cpp | |
parent | eef1d13743baddf41bd135d98fc2ad12944b8477 (diff) | |
parent | ab4dde176cfa314522964e5e5fbf9f2d388f8fdf (diff) | |
download | Qt-6b1b666574d6e27efdd3b243de8815a5278c3666.zip Qt-6b1b666574d6e27efdd3b243de8815a5278c3666.tar.gz Qt-6b1b666574d6e27efdd3b243de8815a5278c3666.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7
Conflicts:
tools/qdoc3/test/qt.qdocconf
Diffstat (limited to 'src/gui/graphicsview/qgraphicsitem.cpp')
-rw-r--r-- | src/gui/graphicsview/qgraphicsitem.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 74c51f4..bf36d9b 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -3258,6 +3258,8 @@ void QGraphicsItemPrivate::setFocusHelper(Qt::FocusReason focusReason, bool clim } // Update the child focus chain. + if (scene && scene->focusItem()) + scene->focusItem()->d_ptr->clearSubFocus(); f->d_ptr->setSubFocus(); // Update the scene's focus item. @@ -5511,6 +5513,9 @@ void QGraphicsItemPrivate::setSubFocus(QGraphicsItem *rootItem) // Update focus child chain. Stop at panels, or if this item // is hidden, stop at the first item with a visible parent. QGraphicsItem *parent = rootItem ? rootItem : q_ptr; + if (parent->panel() != q_ptr->panel()) + return; + do { // Clear any existing ancestor's subFocusItem. if (parent != q_ptr && parent->d_ptr->subFocusItem) { @@ -7635,9 +7640,9 @@ int QGraphicsItemPrivate::children_count(QDeclarativeListProperty<QGraphicsObjec QGraphicsObject *QGraphicsItemPrivate::children_at(QDeclarativeListProperty<QGraphicsObject> *list, int index) { QGraphicsItemPrivate *d = QGraphicsItemPrivate::get(static_cast<QGraphicsObject *>(list->object)); - if (index >= 0 && index < d->children.count()) + if (index >= 0 && index < d->children.count()) return d->children.at(index)->toGraphicsObject(); - else + else return 0; } |