Fix font sizes not reacting on settings change (#26060)
Proper version of https://github.com/zed-industries/zed/pull/25425 When https://github.com/zed-industries/zed/pull/24857 returned font updates on settings changes, settings values, not in-memory ones should be compared. This PR returns back the logic finally, and changes it to explicitly track the settings values, not the in-memory ones. Also adds the same tracking for UI font changes, which had never been tracked before. Release Notes: - Fixed font sizes not reacting on settings change
This commit is contained in:
@@ -23,6 +23,7 @@ use std::path::Path;
|
||||
use std::sync::Arc;
|
||||
|
||||
use ::settings::Settings;
|
||||
use ::settings::SettingsStore;
|
||||
use anyhow::Result;
|
||||
use fallback_themes::apply_status_color_defaults;
|
||||
use fs::Fs;
|
||||
@@ -101,6 +102,24 @@ pub fn init(themes_to_load: LoadThemes, cx: &mut App) {
|
||||
|
||||
ThemeSettings::register(cx);
|
||||
FontFamilyCache::init_global(cx);
|
||||
|
||||
let mut prev_buffer_font_size_settings =
|
||||
ThemeSettings::get_global(cx).buffer_font_size_settings();
|
||||
let mut prev_ui_font_size_settings = ThemeSettings::get_global(cx).ui_font_size_settings();
|
||||
cx.observe_global::<SettingsStore>(move |cx| {
|
||||
let buffer_font_size_settings = ThemeSettings::get_global(cx).buffer_font_size_settings();
|
||||
if buffer_font_size_settings != prev_buffer_font_size_settings {
|
||||
prev_buffer_font_size_settings = buffer_font_size_settings;
|
||||
reset_buffer_font_size(cx);
|
||||
}
|
||||
|
||||
let ui_font_size_settings = ThemeSettings::get_global(cx).ui_font_size_settings();
|
||||
if ui_font_size_settings != prev_ui_font_size_settings {
|
||||
prev_ui_font_size_settings = ui_font_size_settings;
|
||||
reset_ui_font_size(cx);
|
||||
}
|
||||
})
|
||||
.detach();
|
||||
}
|
||||
|
||||
/// Implementing this trait allows accessing the active theme.
|
||||
|
||||
Reference in New Issue
Block a user