diff --git a/crates/gpui/src/platform/linux/text_system.rs b/crates/gpui/src/platform/linux/text_system.rs index 3f045f9406f2ce1f06b55367600547843cdb69e3..958d509d5317aea32815eee2850e3a196d6586ed 100644 --- a/crates/gpui/src/platform/linux/text_system.rs +++ b/crates/gpui/src/platform/linux/text_system.rs @@ -1,7 +1,7 @@ use crate::{ Bounds, DevicePixels, Font, FontFeatures, FontId, FontMetrics, FontRun, FontStyle, FontWeight, GlyphId, LineLayout, Pixels, PlatformTextSystem, Point, RenderGlyphParams, SUBPIXEL_VARIANTS_X, - ShapedGlyph, ShapedRun, SharedString, Size, point, size, + SUBPIXEL_VARIANTS_Y, ShapedGlyph, ShapedRun, SharedString, Size, point, size, }; use anyhow::{Context as _, Ok, Result}; use collections::HashMap; @@ -274,9 +274,10 @@ impl CosmicTextSystemState { fn raster_bounds(&mut self, params: &RenderGlyphParams) -> Result> { let font = &self.loaded_fonts[params.font_id.0].font; - let subpixel_shift = params - .subpixel_variant - .map(|v| v as f32 / (SUBPIXEL_VARIANTS_X as f32 * params.scale_factor)); + let subpixel_shift = point( + params.subpixel_variant.x as f32 / SUBPIXEL_VARIANTS_X as f32 / params.scale_factor, + params.subpixel_variant.y as f32 / SUBPIXEL_VARIANTS_Y as f32 / params.scale_factor, + ); let image = self .swash_cache .get_image( @@ -309,9 +310,10 @@ impl CosmicTextSystemState { } else { let bitmap_size = glyph_bounds.size; let font = &self.loaded_fonts[params.font_id.0].font; - let subpixel_shift = params - .subpixel_variant - .map(|v| v as f32 / (SUBPIXEL_VARIANTS_X as f32 * params.scale_factor)); + let subpixel_shift = point( + params.subpixel_variant.x as f32 / SUBPIXEL_VARIANTS_X as f32 / params.scale_factor, + params.subpixel_variant.y as f32 / SUBPIXEL_VARIANTS_Y as f32 / params.scale_factor, + ); let mut image = self .swash_cache .get_image( diff --git a/crates/gpui/src/text_system.rs b/crates/gpui/src/text_system.rs index efa4ad032a66ce92a71cbd82be6ed4a63d527858..83fb4993e0ad69cd0d2ae034f79fdd6feaeb9b77 100644 --- a/crates/gpui/src/text_system.rs +++ b/crates/gpui/src/text_system.rs @@ -43,11 +43,12 @@ pub struct FontFamilyId(pub usize); pub(crate) const SUBPIXEL_VARIANTS_X: u8 = 4; -pub(crate) const SUBPIXEL_VARIANTS_Y: u8 = if cfg!(target_os = "windows") { - 1 -} else { - SUBPIXEL_VARIANTS_X -}; +pub(crate) const SUBPIXEL_VARIANTS_Y: u8 = + if cfg!(target_os = "windows") || cfg!(target_os = "linux") { + 1 + } else { + SUBPIXEL_VARIANTS_X + }; /// The GPUI text rendering sub system. pub struct TextSystem {