From aa67413abc9e8d187a1380ad58cd86f87173f746 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Wed, 19 Jul 2023 16:55:28 -0700 Subject: [PATCH] Raise minimum line height to 1.1 Disable buffer_line_height setting in non-buffer editors --- crates/editor/src/editor.rs | 14 ++++++++++++-- crates/editor/src/element.rs | 1 + crates/theme/src/theme_settings.rs | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index cbf3d1a173..6a22a1f1f2 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -1300,7 +1300,7 @@ impl Editor { let editor_view_id = cx.view_id(); let display_map = cx.add_model(|cx| { let settings = settings::get::(cx); - let style = build_style(settings, get_field_editor_theme.as_deref(), None, cx); + let style = build_style(settings, get_field_editor_theme.as_deref(), None, &mode, cx); DisplayMap::new( buffer.clone(), style.text.font_id, @@ -1500,6 +1500,7 @@ impl Editor { settings::get::(cx), self.get_field_editor_theme.as_deref(), self.override_text_style.as_deref(), + &self.mode, cx, ) } @@ -8152,10 +8153,11 @@ fn build_style( settings: &ThemeSettings, get_field_editor_theme: Option<&GetFieldEditorTheme>, override_text_style: Option<&OverrideTextStyle>, + mode: &EditorMode, cx: &AppContext, ) -> EditorStyle { let font_cache = cx.font_cache(); - let line_height_scalar = settings.line_height(); + let mut line_height_scalar = settings.line_height(); let theme_id = settings.theme.meta.id; let mut theme = settings.theme.editor.clone(); let mut style = if let Some(get_field_editor_theme) = get_field_editor_theme { @@ -8166,6 +8168,14 @@ fn build_style( .container .background_color .unwrap_or_default(); + + line_height_scalar = match mode { + EditorMode::Full => line_height_scalar, + EditorMode::AutoHeight { .. } | EditorMode::SingleLine => { + cx.font_cache().line_height(field_editor_theme.text.font_size) + } + }; + EditorStyle { text: field_editor_theme.text, placeholder_text: field_editor_theme.placeholder_text, diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index 4962b08db2..59a2b222d8 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -1977,6 +1977,7 @@ impl Element for EditorElement { let snapshot = editor.snapshot(cx); let style = self.style.clone(); + let line_height = (style.text.font_size * style.line_height_scalar).round(); let gutter_padding; diff --git a/crates/theme/src/theme_settings.rs b/crates/theme/src/theme_settings.rs index b576391e14..ab302a123a 100644 --- a/crates/theme/src/theme_settings.rs +++ b/crates/theme/src/theme_settings.rs @@ -13,7 +13,7 @@ use std::sync::Arc; use util::ResultExt as _; const MIN_FONT_SIZE: f32 = 6.0; -const MIN_LINE_HEIGHT: f32 = 1.0; +const MIN_LINE_HEIGHT: f32 = 1.1; #[derive(Clone, JsonSchema)] pub struct ThemeSettings {