diff options
author | Adriano Rezende <adriano.rezende@openbossa.org> | 2011-11-21 02:41:32 -0800 |
---|---|---|
committer | Jens Bache-Wiig <jens.bache-wiig@nokia.com> | 2011-11-21 02:41:32 -0800 |
commit | ad2dc6fea3469386c0cc002bc0a686f71707c878 (patch) | |
tree | 382f91bcd9776b60aa0fc8b1f6aec0796cebcd7a | |
parent | 91d9fb83f9a099e16a1ec7a74a48bb4aee54c30b (diff) | |
download | qtquickcontrols-ad2dc6fea3469386c0cc002bc0a686f71707c878.tar.gz |
Minor layout optimization
Abort layout traversal when finding the first dirty parent, since
the event was already being posted for the top level layout.
Signed-off-by: Adriano Rezende <adriano.rezende@openbossa.org>
Merge-request: 12
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@nokia.com>
-rw-r--r-- | src/qdeclarativelayout.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/qdeclarativelayout.cpp b/src/qdeclarativelayout.cpp index 64af622e..1d250a0d 100644 --- a/src/qdeclarativelayout.cpp +++ b/src/qdeclarativelayout.cpp @@ -158,7 +158,7 @@ void QDeclarativeLayout::invalidate() QDeclarativeLayout *layout = this; QDeclarativeLayout *parentLayout = 0; - while (layout) { + while (!layout->m_dirty) { layout->m_dirty = true; parentLayout = qobject_cast<QDeclarativeLayout *>(layout->parentItem()); @@ -168,7 +168,9 @@ void QDeclarativeLayout::invalidate() layout = parentLayout; } - QApplication::postEvent(layout, new QEvent(QEvent::LayoutRequest)); + // just post events for top level layouts + if (!parentLayout) + QApplication::postEvent(layout, new QEvent(QEvent::LayoutRequest)); } void QDeclarativeLayout::reconfigureTopDown() |