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