-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Update settings to use new "form" style controls #36193
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Used for "confine mouse mode" dropdown tooltip text.
Background blur is disabled by default.
|
I dunno about the Also, I'd expect to be able to click anywhere on the text in such header items to perform the toggle. |
2026-01-01.17.19.00.mp4This is weird. Might be best to fix separately but definitely needs to be changed. |
|
Maybe too late to say now, but I feel that the on vs. off contrast of switches is too subtle. This is particularly confusing for vertical switches. It is not clear if "up" is on or "down" is on. |
| public SettingsButtonV2() | ||
| { | ||
| RelativeSizeAxes = Axes.X; | ||
| Margin = new MarginPadding { Vertical = -1.5f }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unlike SettingsButton with -5, the vertical margin here is set to -1.5 instead. This is because the overall settings spacing specified in flow containers has been reduced from 14 to 7, and to preserve the button spacing with that change, -5 + 7 / 2 = -1.5.
| Anchor = Anchor.TopRight, | ||
| Origin = Anchor.TopRight | ||
| Origin = Anchor.TopRight, | ||
| Spacing = new Vector2(-6, 0), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| content.AutoSizeDuration = 500; | ||
| content.AutoSizeDuration = 250; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The duration set here felt too slow for a snappy animation.
Before:
CleanShot.2026-01-01.at.06.45.52.mp4
After:
CleanShot.2026-01-01.at.06.45.32.mp4
| bool negativeBottomMargin = !handlerEnabled.Value || FlowContent.Count == 0; | ||
| HeaderContainer.TransformTo(nameof(Margin), new MarginPadding { Bottom = negativeBottomMargin ? -15 : 0 }, 300, Easing.OutQuint); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| windowModeDropdown.SetNoticeText(LayoutSettingsStrings.FullscreenMacOSNote, true); | ||
| windowModeDropdownNote.Value = new SettingsNote.Data(LayoutSettingsStrings.FullscreenMacOSNote, SettingsNote.Type.Critical); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've increased the level of this note from warning to critical as system-wide freezes may occur in this mode.
| windowModeDropdown.SetNoticeText(LayoutSettingsStrings.CheckingForFullscreenCapabilities, true); | ||
| windowModeDropdownNote.Value = new SettingsNote.Data(LayoutSettingsStrings.CheckingForFullscreenCapabilities, SettingsNote.Type.Informational); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've dropped down the level of this note as it's not really a "warning" yet. Informational makes most sense.
I've added this but I'm not 100% sure about the hover design and feedback there: CleanShot.2026-01-01.at.09.20.52.mp4 |
Sorry to +1 but I very much agree with this. I almost never see vertical switches in software, and think it's a suboptimal design because there is no established on or off position like you said. I personally expected "up" to be the on position because that's how most real-life switches work in my head. Wouldn't a horizontal switch look just as good here? |





The final piece, containing migration of all settings to use the new form controls, as well as minor changes within the settings overlay to complete the migration.
To avoid touching any irrelevant file, I've chosen to make and use separate constants and classes for new settings, as shown in 8956bbd. Once this PR is merged, a follow-up PR will migrate the remaining non-settings usages of
SettingsItemto the V2 counterpart, removeSettingsItemcompletely, and drop the V2 suffix from all existing components.Side design changes worthy of note: