Skip to content

fix(settings): let the Themes list scroll and take keyboard focus - #3456

Merged
datlechin merged 5 commits into
mainfrom
fix/appearance-theme-list
Oct 16, 2026
Merged

datlechin merged 5 commits into
mainfrom
fix/appearance-theme-list

Conversation

@datlechin

Copy link
Copy Markdown
Member

Why

The Themes list in Settings > Appearance did not scroll, and clicking a theme did not give the list keyboard focus, so the arrow keys did nothing. The list sat inside the pane's grouped Form. Measured on macOS 27: SwiftUI turns scrolling off for a List nested in a scrolling grouped Form (no scroller, no elasticity, a scroll event does not move it), and its rows do not take focus. The fixed 176 pt height then cut off every theme past the first few.

Change

  • The Form keeps only the Appearance mode and the Light and Dark theme popups, at its own height. The Themes list sits below it, fills the rest of the pane, and scrolls and takes focus like any list.
  • The list keeps the Form's section edges and header indent.

Verified

AppearancePaneListTests (the list moves on a scroll event) and the new AppearanceSettingsUITests.testThemesListScrollsAndTakesArrowKeys (scroll to the last theme, click, Down Arrow moves the selection) fail on main and pass here. The existing Appearance flow passes; it no longer scrolls the Form to reach the list's buttons.

Screenshots

Appearance, dark
Appearance, light

Not in this PR

  • Other lists inside a grouped Form share the pattern and may have the same problem with enough rows: MCP tokens (MCPTokenListView), License devices and team, Loadable Extensions in the connection form.

@datlechin
datlechin merged commit bdbcb7d into main Oct 16, 2026
7 checks passed
@datlechin
datlechin deleted the fix/appearance-theme-list branch October 16, 2026 17:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant