aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickwindow.cpp
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar@sletta.org>2014-10-20 09:23:28 +0200
committerGunnar Sletta <gunnar@sletta.org>2014-10-20 10:39:34 +0200
commite0321c352e288a8dd6c5dad17d7917c9534ad156 (patch)
treeb1e6fec9be97548f1d6df7d75d4e9e6bbfe532c8 /src/quick/items/qquickwindow.cpp
parentb876458c60a92066a43e12c93e4ab0ec68b54c71 (diff)
Fix newly added qquickitem_before_paintNode() implementation.
Bug spotted after the fact with lancelot. Change-Id: Id9b2d2577658f772f3083b1396f61710a950f83b Reviewed-by: aavit <eirik.aavitsland@digia.com>
Diffstat (limited to 'src/quick/items/qquickwindow.cpp')
-rw-r--r--src/quick/items/qquickwindow.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index 1fc0584a34..34b1c474ed 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -2650,12 +2650,14 @@ static inline QSGNode *qquickitem_before_paintNode(QQuickItemPrivate *d)
if (!d->extra.isAllocated())
return 0;
const QList<QQuickItem *> childItems = d->paintOrderChildItems();
+ QQuickItem *before = 0;
for (int i=0; i<childItems.size(); ++i) {
- if (Q_LIKELY(QQuickItemPrivate::get(childItems.at(i))->z() >= 0)) {
- return Q_LIKELY(i == 0) ? 0 : QQuickItemPrivate::get(childItems.at(i))->itemNode();
- }
+ if (Q_UNLIKELY(QQuickItemPrivate::get(childItems.at(i))->z() < 0))
+ before = childItems.at(i);
+ else
+ break;
}
- return 0;
+ return Q_UNLIKELY(before) ? QQuickItemPrivate::get(before)->itemNode() : 0;
}
void QQuickWindowPrivate::updateDirtyNode(QQuickItem *item)