From 3da4cddce205d71dcad760c6af66a8985b16ffbe Mon Sep 17 00:00:00 2001 From: localcc Date: Thu, 16 Oct 2025 19:07:07 +0200 Subject: [PATCH] Round the scroll offset in editor to fix jumping text (#40401) Release Notes: - Improved editor font rendering on lodpi displays Co-authored-by: John Tur --- crates/editor/src/element.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index 054240ab73ba5ac36499e1a1f2e66f8dae06503c..f93d5eac2e11a57b9674bac408c667087ea02add 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -7212,9 +7212,16 @@ impl EditorElement { * ScrollPixelOffset::from(max_glyph_advance) - ScrollPixelOffset::from(delta.x * scroll_sensitivity)) / ScrollPixelOffset::from(max_glyph_advance); - let y = (current_scroll_position.y * ScrollPixelOffset::from(line_height) + + let scale_factor = window.scale_factor(); + let y = (current_scroll_position.y + * ScrollPixelOffset::from(line_height) + * ScrollPixelOffset::from(scale_factor) - ScrollPixelOffset::from(delta.y * scroll_sensitivity)) - / ScrollPixelOffset::from(line_height); + .round() + / ScrollPixelOffset::from(line_height) + / ScrollPixelOffset::from(scale_factor); + let mut scroll_position = point(x, y).clamp(&point(0., 0.), &position_map.scroll_max); let forbid_vertical_scroll = editor.scroll_manager.forbid_vertical_scroll();