Skip to content

ui(settings): fix nested SingleChildScrollView in PreferencesAppearanceSection #1650

Closed

Description

@ZhuchkaTriplesix

Problem

In lib/features/settings/preferences_dialog.dart, the detail pane host (_buildPaneHost) already wraps every selected preference pane in a vertical SingleChildScrollView:

child: material.SingleChildScrollView(
  primary: false,
  padding: const material.EdgeInsets.symmetric(horizontal: 24, vertical: 16),
  child: selected ? _paneWidgets[cat] = _buildPane(cat, theme) : ...,
)

However, in lib/features/settings/preferences_appearance_section.dart (line 155), build() inside ListenableBuilder returns a second nested material.SingleChildScrollView(primary: false, child: material.Column(...)).

Impact

  • Creates two nested Scrollable widgets with unconstrained vertical height.
  • On desktop platforms (macOS/Linux/Windows), mouse wheel and trackpad scroll events conflict between the inner and outer scroll controllers.
  • The outer scrollbar does not accurately represent the content scroll extent of the Appearance tab.

Solution

Remove the inner material.SingleChildScrollView in preferences_appearance_section.dart and return material.Column directly (matching the other preferences sections like SQL, DataGrid, Extensions, About).

Activity

  1. added
    bugSomething isn't working
    frontendTheme parser epic label: frontend
    settingsTheme parser epic label: settings
    on Oct 17, 2026
  2. ZhuchkaTriplesix commented on Oct 17, 2026

    @ZhuchkaTriplesix
    MemberAuthor

    Resolved in #1668

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfrontendTheme parser epic label: frontendsettingsTheme parser epic label: settings

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions