From 95c698d31de714d1382dc9dee7bad62bd710eba6 Mon Sep 17 00:00:00 2001 From: John Tur Date: Wed, 14 Jan 2026 21:40:13 -0500 Subject: [PATCH] Fix emoji on Linux when using High DPI (#46857) Fixes https://github.com/zed-industries/zed/issues/46849 Release Notes: - Fixed emoji being too small on Linux when using High DPI --- crates/gpui/src/platform/linux/text_system.rs | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/crates/gpui/src/platform/linux/text_system.rs b/crates/gpui/src/platform/linux/text_system.rs index 1fcd7d4faa18677c4d0d5c45f3181913a999e156..e0729569b6ad9b0451bd2cb52674a4667b815058 100644 --- a/crates/gpui/src/platform/linux/text_system.rs +++ b/crates/gpui/src/platform/linux/text_system.rs @@ -21,7 +21,7 @@ use smallvec::SmallVec; use std::{borrow::Cow, sync::Arc}; use swash::{ scale::{Render, ScaleContext, Source, StrikeWith}, - zeno::{Format, Transform, Vector}, + zeno::{Format, Vector}, }; pub(crate) struct CosmicTextSystem(RwLock); @@ -334,7 +334,7 @@ impl CosmicTextSystemState { let mut scaler = self .swash_scale_context .builder(font_ref) - .size(pixel_size) + .size(pixel_size * params.scale_factor) .hint(true) .build(); @@ -349,15 +349,6 @@ impl CosmicTextSystemState { }; let mut renderer = Render::new(sources); - renderer.transform(Some(Transform { - xx: params.scale_factor, - xy: 0.0, - yx: 0.0, - yy: params.scale_factor, - x: 0.0, - y: 0.0, - })); - if params.subpixel_rendering { // There seems to be a bug in Swash where the B and R values are swapped. renderer