From 986c04dfd5f57f325f4060f4d03e13461d16ee5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Thu, 20 Sep 2018 16:00:23 +0200 Subject: [PATCH] [poincare] Make HorizontalLayoutNode::positionOfChild faster and lighter --- poincare/src/horizontal_layout.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/poincare/src/horizontal_layout.cpp b/poincare/src/horizontal_layout.cpp index 33cdc8fa2..d135a0dea 100644 --- a/poincare/src/horizontal_layout.cpp +++ b/poincare/src/horizontal_layout.cpp @@ -213,9 +213,12 @@ KDPoint HorizontalLayoutNode::positionOfChild(LayoutNode * l) { KDCoordinate x = 0; int index = indexOfChild(l); assert(index > -1); - if (index > 0) { - LayoutNode * previousChild = childAtIndex(index-1); - x = previousChild->origin().x() + previousChild->layoutSize().width(); + for (LayoutNode * c : children()) { + if (c == l) { + break; + } + KDSize childSize = c->layoutSize(); + x += childSize.width(); } KDCoordinate y = baseline() - l->baseline(); return KDPoint(x, y);