Fixed newline drawing in engine

This commit is contained in:
2026-02-01 16:37:07 +01:00
parent b0eaa76398
commit 2ca419bfd4
+5 -3
View File
@@ -26,7 +26,7 @@ pub struct ConsoleExecutor {
} }
/// Console-based rendering engine /// Console-based rendering engine
/// ///
/// Renders components to the terminal using crossterm for cross-platform support. /// Renders components to the terminal using crossterm for cross-platform support.
pub struct Console { pub struct Console {
/// Thread functions to execute /// Thread functions to execute
@@ -64,8 +64,10 @@ impl Engine for Console {
match inst { match inst {
crate::render::DrawInstruction::Text(point, text) => { crate::render::DrawInstruction::Text(point, text) => {
let (x, y) = (ctx.area.x + point.x, ctx.area.y + point.y); let (x, y) = (ctx.area.x + point.x, ctx.area.y + point.y);
execute!(stdout(), MoveTo(x, y),).unwrap(); for (i, line) in text.lines().enumerate() {
print!("{text}"); execute!(stdout(), MoveTo(x, y + (i as u16))).unwrap();
print!("{line}");
}
stdout().flush().unwrap(); stdout().flush().unwrap();
} }
crate::render::DrawInstruction::Child(_point, child) => self.draw_context(child), crate::render::DrawInstruction::Child(_point, child) => self.draw_context(child),