Improve efficiency when validating an ALM layout.

This commit is contained in:
Alex Wilson
2012-05-03 08:45:04 +12:00
parent 419fe0b8ae
commit 82a0965357
2 changed files with 8 additions and 8 deletions
-6
View File
@@ -1016,12 +1016,6 @@ BALMLayout::UpdateConstraints(BLayoutContext* context)
for (int i = 0; i < CountItems(); i++)
AreaFor(ItemAt(i))->InvalidateSizeConstraints();
fRowColumnManager->UpdateConstraints();
if (context) {
BSize size(LayoutArea().Size());
Right()->SetRange(size.width, size.width);
Bottom()->SetRange(size.height, size.height);
}
}
+8 -2
View File
@@ -194,11 +194,17 @@ SharedSolver::ValidateLayout(BLayoutContext* context)
if (fLayoutValid && fLayoutContext == context)
return;
fConstraintsValid = false;
_SetContext(context);
_ValidateConstraints();
fLayoutResult = fLinearSpec.Solve();
for (int32 i = fLayouts.CountItems() - 1; i >= 0; i--) {
BALMLayout* layout = fLayouts.ItemAt(i);
BSize size(layout->LayoutArea().Size());
layout->Right()->SetRange(size.width, size.width);
layout->Bottom()->SetRange(size.height, size.height);
}
fLayoutResult = fLinearSpec.Solve();
fLayoutValid = true;
}