From 9ab32ae1c3b25a91aacbd9b25d0406ee551aae04 Mon Sep 17 00:00:00 2001 From: StratusFearMe21 <57533634+StratusFearMe21@users.noreply.github.com> Date: Tue, 4 Mar 2025 19:36:29 -0700 Subject: [PATCH] Fix the `is_run_visible` calculation (#134) * Fix the `is_run_visible` calculation * Clarify variable names in the `is_run_visible` calculation * Make the physical run_line scales `i32` instead of `f32` * Make entire `start_y_physical` expression in `is_run_visible` calculation an `i32` --- src/text_render.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/text_render.rs b/src/text_render.rs index d1b4150..6f0cb47 100644 --- a/src/text_render.rs +++ b/src/text_render.rs @@ -73,10 +73,10 @@ impl TextRenderer { let bounds_max_y = text_area.bounds.bottom.min(resolution.height as i32); let is_run_visible = |run: &cosmic_text::LayoutRun| { - let start_y = (text_area.top + run.line_top) as i32; - let end_y = (text_area.top + run.line_top + run.line_height) as i32; - - start_y <= text_area.bounds.bottom && text_area.bounds.top <= end_y + let start_y_physical = (text_area.top + (run.line_top * text_area.scale)) as i32; + let end_y_physical = start_y_physical + (run.line_height * text_area.scale) as i32; + + start_y_physical <= text_area.bounds.bottom && text_area.bounds.top <= end_y_physical }; let layout_runs = text_area