Universal layout fixes and detail screen polish — focused on making every screen work perfectly on both 4:3 and 16:9 handhelds.
Highlights
- Crystal-clear focus indicators — white borders and glow replace accent-color-only styling, so you always know where the D-pad focus is, regardless of system theme color.
- Phantom focus eliminated — previously, the download button, favorite icon, and first screenshot all appeared focused simultaneously. Now only the actually focused element lights up.
- Universal 4:3 / 16:9 layout — 9 overlays and dialogs replaced hardcoded pixel constraints with screen-relative values. No more overflow on narrow screens, no wasted space on wide ones.
- Variant picker redesign — compact tag pills with region flags, marquee-scrolling filenames for long ROM names, wider overlay, and D-pad left/right blocked to prevent focus leaking to the background.
- Action buttons anchored — Download/Delete and icon buttons now stick to the bottom of the left column in landscape, consistent across all detail views.
Change Log
Improved:
- Detail screen focus visibility — white borders and dual-layer glow (white inner + accent outer) on all focusable elements
- Correct focus tracking — sub-widgets only highlight when their section is active
- Action buttons anchored to bottom of left column in landscape layout
- Variant picker — wider (55%), compact tag pills, marquee filenames, D-pad L/R consumed
- Other Versions section — shows only RomM/IGDB siblings, no longer duplicates local variants
- Universal 4:3 and 16:9 layout — screen-relative
clamp()values across description overlay, game detail overlay, exit dialog, system picker, shelf picker, game list overlay, system selector, quick menu, and detail screen cover column - MarqueeText shared widget — ticker-scroll for long text in version cards and sibling entries
Fixed:
- Variant picker focus restore after returning from download queue
- Icon button resize on focus — removed labels that caused multi-line wrapping on 4:3 screens
- LanguageBadges overflow in version cards
Internal:
- Extracted
MarqueeTexttolib/widgets/marquee_text.dart isSectionFocusedparameter threaded throughActionButtonsRow,ScreenshotsCarousel,OtherVersionsSection