Parent Issue
Part of #109 - Window resize behavior conflicts with component sizing
Problem
Components with AxisResizeBehavior::FIXED appear to grow when the window expands, but do not shrink back when the window contracts.
Expected: Components with FIXED axis behavior should maintain their original size regardless of window resize direction.
Observed: Fixed-size components still affected by layout during shrinking operations.
Potential Causes
- Interaction between FlexLayout's shrink factors and component resize behavior
- Min/max size constraints not being properly applied
- Original dimensions being recalculated incorrectly during shrink operations
setBounds() calls from layout manager overriding resize behavior
Reproduction
- Build and run the demo app:
mise demo
- Expand window vertically - observe panel heights
- Shrink window vertically - observe if panels shrink correctly (they shouldn't if FIXED)
- Repeat with horizontal resizing
Success Criteria
Related Code
include/bombfork/prong/core/component.h - onParentResize(), setBounds()
include/bombfork/prong/layout/flex_layout.h - shrink factor interaction
tests/test_axis_resize.cpp
Dependencies
Should be worked on after #109.1 to ensure baseline behavior is correct.
Parent Issue
Part of #109 - Window resize behavior conflicts with component sizing
Problem
Components with
AxisResizeBehavior::FIXEDappear to grow when the window expands, but do not shrink back when the window contracts.Expected: Components with
FIXEDaxis behavior should maintain their original size regardless of window resize direction.Observed: Fixed-size components still affected by layout during shrinking operations.
Potential Causes
setBounds()calls from layout manager overriding resize behaviorReproduction
mise demoSuccess Criteria
Related Code
include/bombfork/prong/core/component.h-onParentResize(),setBounds()include/bombfork/prong/layout/flex_layout.h- shrink factor interactiontests/test_axis_resize.cppDependencies
Should be worked on after #109.1 to ensure baseline behavior is correct.