sync radius
This commit is contained in:
@@ -138,8 +138,12 @@ pub(crate) fn resolve(
|
||||
}
|
||||
|
||||
let mut radius = Radius::default();
|
||||
if let Some(control) = preset.and_then(|def| def.control_radius) {
|
||||
radius.control = px(control);
|
||||
if let Some(control) = preset
|
||||
.and_then(|def| def.control_radius)
|
||||
.map(px)
|
||||
.or(system.control_radius)
|
||||
{
|
||||
radius.control = control;
|
||||
}
|
||||
|
||||
ResolvedTheme {
|
||||
@@ -182,11 +186,25 @@ mod tests {
|
||||
variant,
|
||||
accent,
|
||||
palette,
|
||||
control_radius: None,
|
||||
accessibility: AccessibilityPreferences::default(),
|
||||
source: SourceKind::Macos,
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn metric_priority_is_definition_then_system_then_fallback() {
|
||||
let mut stated = system(ThemeVariant::Dark, PartialPalette::default(), None);
|
||||
stated.control_radius = Some(px(4.));
|
||||
|
||||
let resolved = resolve(&stated, None, None);
|
||||
assert_eq!(resolved.radius.control, px(4.));
|
||||
|
||||
let def = ThemeDefinition::parse_toml("control_radius = 12.0\n").unwrap();
|
||||
let overridden = resolve(&stated, Some(&def), None);
|
||||
assert_eq!(overridden.radius.control, px(12.));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn empty_system_resolves_to_the_neutral_fallback() {
|
||||
for variant in [ThemeVariant::Light, ThemeVariant::Dark] {
|
||||
|
||||
Reference in New Issue
Block a user