Consume newline from run if it spans it

Antonio Scandurra created

Change summary

crates/gpui2/src/text_system.rs | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)

Detailed changes

crates/gpui2/src/text_system.rs 🔗

@@ -290,7 +290,15 @@ impl TextSystem {
                 text: SharedString::from(line_text),
             });
 
-            line_start = line_end + 1; // Skip `\n` character.
+            // Skip `\n` character.
+            line_start = line_end + 1;
+            if let Some(run) = runs.peek_mut() {
+                run.len = run.len.saturating_sub(1);
+                if run.len == 0 {
+                    runs.next();
+                }
+            }
+
             font_runs.clear();
         }