Skip to content

Commit

Permalink
Limit the value can be set for font weight (#18594)
Browse files Browse the repository at this point in the history
Closes #18531



This PR limits the range of values that can be set for `FontWeight`.
Since any value less than 1.0 or greater than 999.9 causes Zed to crash
on Windows, I’ve restricted `FontWeight` to this range.

I could apply this constraint only on Windows, but considering the
documentation at https://zed.dev/docs/configuring-zed#buffer-font-weight
indicates that `FontWeight` should be between 100 and 900, I thought it
might be a good idea to apply this restriction in the settings.


Release Notes:

- Changed `ui_font_weight` and `buffer_font_weight` settings to require
values to be between `100` and `950` (inclusive).

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
  • Loading branch information
JunkuiZhang and maxdeviant authored Oct 1, 2024
1 parent d14e36b commit 9b148f3
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions crates/theme/src/settings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -520,6 +520,10 @@ pub fn reset_ui_font_size(cx: &mut AppContext) {
}
}

fn clamp_font_weight(weight: f32) -> FontWeight {
FontWeight(weight.clamp(100., 950.))
}

impl settings::Settings for ThemeSettings {
const KEY: Option<&'static str> = None;

Expand Down Expand Up @@ -579,7 +583,7 @@ impl settings::Settings for ThemeSettings {
this.buffer_font.fallbacks = Some(FontFallbacks::from_fonts(value));
}
if let Some(value) = value.buffer_font_weight {
this.buffer_font.weight = FontWeight(value);
this.buffer_font.weight = clamp_font_weight(value);
}

if let Some(value) = value.ui_font_family.clone() {
Expand All @@ -592,7 +596,7 @@ impl settings::Settings for ThemeSettings {
this.ui_font.fallbacks = Some(FontFallbacks::from_fonts(value));
}
if let Some(value) = value.ui_font_weight {
this.ui_font.weight = FontWeight(value);
this.ui_font.weight = clamp_font_weight(value);
}

if let Some(value) = &value.theme {
Expand Down

0 comments on commit 9b148f3

Please sign in to comment.