hrev44691 adds 1 changeset to branch 'master' old head: 323abd9b89cb53e3feb8f559ecef515acea51db9 new head: d6977957a0b9929114b5f3d128d686eafa53b016 ---------------------------------------------------------------------------- d697795: The current solver don't like big values. - Check the constraint values first. - Some cleanup. [ czeidler <haiku@xxxxxxxxxxxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev44691 Commit: d6977957a0b9929114b5f3d128d686eafa53b016 URL: http://cgit.haiku-os.org/haiku/commit/?id=d697795 Author: czeidler <haiku@xxxxxxxxxxxxxxxxxx> Date: Wed Oct 10 22:50:03 2012 UTC ---------------------------------------------------------------------------- 1 file changed, 12 insertions(+), 5 deletions(-) src/servers/app/stackandtile/SATGroup.cpp | 17 ++++++++++++----- ---------------------------------------------------------------------------- diff --git a/src/servers/app/stackandtile/SATGroup.cpp b/src/servers/app/stackandtile/SATGroup.cpp index b27906d..b75a11d 100644 --- a/src/servers/app/stackandtile/SATGroup.cpp +++ b/src/servers/app/stackandtile/SATGroup.cpp @@ -215,6 +215,16 @@ WindowArea::_UpdateConstraintValues() if (maxHeight < maxH) maxHeight = maxH; } + // the current solver don't like big values + const int32 kMaxSolverValue = 5000; + if (minWidth > kMaxSolverValue) + minWidth = kMaxSolverValue; + if (minHeight > kMaxSolverValue) + minHeight = kMaxSolverValue; + if (maxWidth > kMaxSolverValue) + maxWidth = kMaxSolverValue; + if (maxHeight > kMaxSolverValue) + maxHeight = kMaxSolverValue; topWindow->AddDecorator(&minWidth, &maxWidth, &minHeight, &maxHeight); fMinWidthConstraint->SetRightSide(minWidth); @@ -501,14 +511,10 @@ WindowArea::_MoveToSAT(SATWindow* triggerWindow) if (topWindow == NULL) return; - int32 workspace = triggerWindow->GetWindow()->CurrentWorkspace(); - Desktop* desktop = triggerWindow->GetWindow()->Desktop(); - BRect frameSAT(LeftVar()->Value() - kMakePositiveOffset, TopVar()->Value() - kMakePositiveOffset, RightVar()->Value() - kMakePositiveOffset, BottomVar()->Value() - kMakePositiveOffset); - topWindow->AdjustSizeLimits(frameSAT); BRect frame = topWindow->CompleteWindowFrame(); @@ -518,12 +524,13 @@ WindowArea::_MoveToSAT(SATWindow* triggerWindow) float deltaByX = round(frameSAT.right - frame.right); float deltaByY = round(frameSAT.bottom - frame.bottom); + int32 workspace = triggerWindow->GetWindow()->CurrentWorkspace(); + Desktop* desktop = triggerWindow->GetWindow()->Desktop(); desktop->MoveWindowBy(topWindow->GetWindow(), deltaToX, deltaToY, workspace); // Update frame to the new position desktop->ResizeWindowBy(topWindow->GetWindow(), deltaByX, deltaByY); - UpdateSizeConstaints(frameSAT); }