Parent Issue
Part of #109 - Window resize behavior conflicts with component sizing
Problem
The initial layout differs significantly from the layout after the first window resize, creating a visible "jump" when the user first resizes the window.
Expected: Panels should appear at their intended sizes immediately on startup and maintain those sizes consistently.
Observed: Initial layout is incorrect, then "snaps" to correct layout on first resize.
Root Cause Investigation Needed
Focus on understanding when and how originalWidth and originalHeight are initialized:
Component::setAxisResizeBehavior() - initialization timing
Component::setBounds() - how per-axis behavior is applied initially
Component::onParentResize() - dimension tracking on first layout
Reproduction
- Build and run the demo app:
mise demo
- Observe the initial panel layout (note widths/heights)
- Resize window - observe the "jump" to correct layout
Success Criteria
Related Code
include/bombfork/prong/core/component.h
examples/demo_app/scenes/demo_scene.h
Parent Issue
Part of #109 - Window resize behavior conflicts with component sizing
Problem
The initial layout differs significantly from the layout after the first window resize, creating a visible "jump" when the user first resizes the window.
Expected: Panels should appear at their intended sizes immediately on startup and maintain those sizes consistently.
Observed: Initial layout is incorrect, then "snaps" to correct layout on first resize.
Root Cause Investigation Needed
Focus on understanding when and how
originalWidthandoriginalHeightare initialized:Component::setAxisResizeBehavior()- initialization timingComponent::setBounds()- how per-axis behavior is applied initiallyComponent::onParentResize()- dimension tracking on first layoutReproduction
mise demoSuccess Criteria
Related Code
include/bombfork/prong/core/component.hexamples/demo_app/scenes/demo_scene.h