diff --git a/core/src/external/file.rs b/core/src/external/file.rs index e52771ee..2a46276f 100644 --- a/core/src/external/file.rs +++ b/core/src/external/file.rs @@ -10,7 +10,7 @@ pub async fn file(files: &[impl AsRef]) -> Result WindowSize { + let mut size = WindowSize { rows: 0, columns: 0, width: 0, height: 0 }; if let Ok(s) = crossterm::terminal::window_size() { - return s; - }; - // TODO - WindowSize { rows: 1, columns: 1, width: 0, height: 0 } + let _ = mem::replace(&mut size, s); + } + + if size.rows == 0 || size.columns == 0 { + if let Ok(s) = crossterm::terminal::size() { + size.columns = s.0; + size.rows = s.1; + } + } + + // TODO: Use `CSI 14 t` to get the actual size of the terminal + if size.width == 0 || size.height == 0 { + size.width = 300; + size.height = 300; + } + + size } #[inline]