Options > Graphics: extended menu overflows off-screen, scrolling only updates some rows #39

Closed
opened 2026-10-20 18:43:25 +00:00 by mintopia · 2 comments
Owner

Symptom

In-game Options > Graphics (our extended menu) doesn't scroll properly when moving through the options:

  • the list extends off-screen (bottom rows not visible)
  • on scroll, only some entries update/redraw

Where

patches/Screens/Shared/Options_Graphics.post.lua (Init override).

Likely cause (unverified)

  • Added rows are clones of Nde_VSync parented to OptionsList; Brightness Adjust / Accept re-cloned below.
  • Scrolling was "disabled" by forcing items_visible = 20 plus ChangeScale(0.46) / ChangePosition(-10, 15). The comment says this fits 12 rows, but rows have since grown (Skip Intro, Discord Rich Presence added), so the list now overflows and the list widget's scroll path kicks in with an items_visible value that doesn't match the real visible rows.
  • Partial updates on scroll suggest the list's scroll/redraw only touches the stock items (or a window of items_visible), not our clones.

Possible fixes

  • Proper scrolling: work out what items_visible really means for this XtGadget list and set it to the true on-screen count so the list scrolls the cloned rows correctly.
  • Or keep no-scroll: shrink/reposition so all rows fit, or split host options into a sub-screen.

Verify

Recomp engine (BLUR_ENGINE=recomp): open Options > Graphics, scroll top→bottom→top. Every row is visible on screen when selected, and every row's label/value redraws correctly.

## Symptom In-game **Options > Graphics** (our extended menu) doesn't scroll properly when moving through the options: - the list extends off-screen (bottom rows not visible) - on scroll, only some entries update/redraw ## Where `patches/Screens/Shared/Options_Graphics.post.lua` (Init override). ## Likely cause (unverified) - Added rows are clones of `Nde_VSync` parented to `OptionsList`; Brightness Adjust / Accept re-cloned below. - Scrolling was "disabled" by forcing `items_visible = 20` plus `ChangeScale(0.46)` / `ChangePosition(-10, 15)`. The comment says this fits 12 rows, but rows have since grown (Skip Intro, Discord Rich Presence added), so the list now overflows and the list widget's scroll path kicks in with an `items_visible` value that doesn't match the real visible rows. - Partial updates on scroll suggest the list's scroll/redraw only touches the stock items (or a window of `items_visible`), not our clones. ## Possible fixes - Proper scrolling: work out what `items_visible` really means for this XtGadget list and set it to the true on-screen count so the list scrolls the cloned rows correctly. - Or keep no-scroll: shrink/reposition so all rows fit, or split host options into a sub-screen. ## Verify Recomp engine (`BLUR_ENGINE=recomp`): open Options > Graphics, scroll top→bottom→top. Every row is visible on screen when selected, and every row's label/value redraws correctly.
Author
Owner

Cause: list only culls rows past items_visible (~2 per row + 1) and does not shift them, so rows past the window at fixed positions were hidden/off-screen once rows grew to 14. Scrolling cannot reveal them. Fix: no-scroll — items_visible 28, scale 0.36 so all 14 rows fit above the help bar. Verified on recomp via mdrive (Options > Graphics, Down x17): all rows incl. Bloom, Brightness Adjust, Accept visible, none cull. Rescale if more rows are added.

Cause: list only culls rows past items_visible (~2 per row + 1) and does not shift them, so rows past the window at fixed positions were hidden/off-screen once rows grew to 14. Scrolling cannot reveal them. Fix: no-scroll — items_visible 28, scale 0.36 so all 14 rows fit above the help bar. Verified on recomp via mdrive (Options > Graphics, Down x17): all rows incl. Bloom, Brightness Adjust, Accept visible, none cull. Rescale if more rows are added.
Author
Owner

Completed and merged by Harmonic (task 39).

Completed and merged by Harmonic (task 39).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mintopia/blur#39
No description provided.