diff --git a/src/libs/alm/ALMLayout.cpp b/src/libs/alm/ALMLayout.cpp index eb8988b9eb..ebb475bf8e 100644 --- a/src/libs/alm/ALMLayout.cpp +++ b/src/libs/alm/ALMLayout.cpp @@ -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); - } } diff --git a/src/libs/alm/SharedSolver.cpp b/src/libs/alm/SharedSolver.cpp index 62caa9390d..7b70adcb26 100644 --- a/src/libs/alm/SharedSolver.cpp +++ b/src/libs/alm/SharedSolver.cpp @@ -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; }