mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-26 19:18:14 -06:00
At 200 % in a 1600x1000 window, Previous / Next / Cancel / OK were cut off. Settings sized its pages from the window height less a fixed 170, and the shared modal put everything, buttons included, in one more scroll area, so a footer that didn't fit scrolled out of the dialog. The modal helper gets a modal_fit variant without that scroll area: it hands its body the height left under the title. Settings lays out its buttons first, from the bottom up, and gives the page list and the page what they leave; both scroll on their own and the buttons stay put. The pages are a clipped child, so a wide page can't widen the dialog under the buttons. Other dialogs keep modal as it was. Tests: settings_buttons_stay_in_view_at_200_percent opens Settings at 200 % in 1600x1000 and checks that each button is inside the window and painted unclipped (fails before this change: the scroll area clipped them at the bottom). It scrolls the page to UI Scale without moving them, then types 150 and clicks Cancel (200 % again, nothing saved) and OK (150 % saved). The UI Scale test no longer needs a larger window and clicks Cancel at 200 %.