Fix: cassowary/layouts: add extra constraints for fixing Min(v)/Max(v) combination. #31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
These added weak constraints prevent zero width/height widgets when combining Min(v)/Max(v) together in a chunk.
The UI will now reflow correctly when (re)sizing, gracefully preserving Max(v) constraints as much as possible.
This fixes the root cause of the issues identified in:
fdehau/tui-rs#39
fdehau/tui-rs#420
(amongst probably similar reports).
Testing guidelines
Combine Min(v) and Max(v) layout constraints in a chunk.
Use any other combination, including Percentage/Ratio/Length with Min/Max.
Resize the window width/height to investigate how the two constraints are now satisfied without 'freaking out' and generating zero-width/height widgets. If all Min(v)/Max(v) constraints cannot be satisfied, they will gracefully degrade.
Checklist