Unnamed repository; edit this file 'description' to name the repository.
Drop terminal interaction in compositor.size()
| -rw-r--r-- | helix-term/src/compositor.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/helix-term/src/compositor.rs b/helix-term/src/compositor.rs index 2c0c1c11..c02727f8 100644 --- a/helix-term/src/compositor.rs +++ b/helix-term/src/compositor.rs @@ -75,6 +75,7 @@ type Terminal = tui::terminal::Terminal<CrosstermBackend<std::io::Stdout>>; pub struct Compositor { layers: Vec<Box<dyn Component>>, terminal: Terminal, + area: Rect, pub(crate) last_picker: Option<Box<dyn Component>>, } @@ -83,21 +84,25 @@ impl Compositor { pub fn new() -> Result<Self, Error> { let backend = CrosstermBackend::new(stdout()); let terminal = Terminal::new(backend)?; + let area = terminal.size().expect("couldn't get terminal size"); Ok(Self { layers: Vec::new(), + area, terminal, last_picker: None, }) } pub fn size(&self) -> Rect { - self.terminal.size().expect("couldn't get terminal size") + self.area } pub fn resize(&mut self, width: u16, height: u16) { self.terminal .resize(Rect::new(0, 0, width, height)) - .expect("Unable to resize terminal") + .expect("Unable to resize terminal"); + + self.area = self.terminal.size().expect("couldn't get terminal size"); } pub fn save_cursor(&mut self) { |