diff options
Diffstat (limited to 'src/widgets/graphicsview/qgraphicsscene.cpp')
-rw-r--r-- | src/widgets/graphicsview/qgraphicsscene.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/widgets/graphicsview/qgraphicsscene.cpp b/src/widgets/graphicsview/qgraphicsscene.cpp index 15edb15619..5b46eb35be 100644 --- a/src/widgets/graphicsview/qgraphicsscene.cpp +++ b/src/widgets/graphicsview/qgraphicsscene.cpp @@ -4658,8 +4658,7 @@ void QGraphicsScenePrivate::drawItemHelper(QGraphicsItem *item, QPainter *painte for (int i = 0; i < exposed.size(); ++i) br |= exposed.at(i); QTransform pixmapToItem = itemToPixmap.inverted(); - const auto rects = scrollExposure.rects(); - for (const QRect &r : rects) + for (const QRect &r : scrollExposure) br |= pixmapToItem.mapRect(r); } styleOptionTmp = *option; @@ -5432,12 +5431,14 @@ bool QGraphicsScene::focusNextPrevChild(bool next) return true; } if (d->activePanel->isWidget()) { - QGraphicsWidget *fw = static_cast<QGraphicsWidget *>(d->activePanel)->d_func()->focusNext; + QGraphicsWidget *test = static_cast<QGraphicsWidget *>(d->activePanel); + QGraphicsWidget *fw = next ? test->d_func()->focusNext : test->d_func()->focusPrev; do { if (fw->focusPolicy() & Qt::TabFocus) { setFocusItem(fw, next ? Qt::TabFocusReason : Qt::BacktabFocusReason); return true; } + fw = next ? fw->d_func()->focusNext : fw->d_func()->focusPrev; } while (fw != d->activePanel); } } |