diff options
Diffstat (limited to 'teleterm-web/src/views/watch.rs')
-rw-r--r-- | teleterm-web/src/views/watch.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/teleterm-web/src/views/watch.rs b/teleterm-web/src/views/watch.rs index 07e8244..841b438 100644 --- a/teleterm-web/src/views/watch.rs +++ b/teleterm-web/src/views/watch.rs @@ -1,4 +1,5 @@ use crate::prelude::*; +use unicode_width::UnicodeWidthStr as _; pub(crate) fn render(model: &crate::model::Model) -> Node<crate::Msg> { let screen = if let Some(screen) = model.screen() { @@ -13,10 +14,17 @@ pub(crate) fn render(model: &crate::model::Model) -> Node<crate::Msg> { let mut row = vec![]; for col_idx in 0..cols { let cell = screen.cell(row_idx, col_idx).unwrap(); - row.push(seed::div![cell.contents()]) + let mut contents = cell.contents(); + if contents.trim().is_empty() || contents.width() == 0 { + contents = "\u{00a0}".to_string(); + } + row.push(seed::td![ + seed::attrs! { At::Class => "cell" }, + contents + ]) } - grid.push(seed::div![row]); + grid.push(seed::tr![seed::attrs! { At::Class => "row" }, row]); } - seed::div![grid] + seed::table![seed::attrs! { At::Class => "grid" }, grid] } |