aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer/mod.rs
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-05-03 22:47:58 +0200
committerGustav Sörnäs <gustav@sornas.net>2021-05-03 22:47:58 +0200
commitc36df73b1e3d3c7f2feeda16e79bbdb2e1a4f251 (patch)
tree6cf577506aa96a4410cd7cfeb966f2a1f7a8cd82 /src/buffer/mod.rs
parent73807bf83e30aa14f3aa1a75afc8ade4ff4b929c (diff)
downloadmail-c36df73b1e3d3c7f2feeda16e79bbdb2e1a4f251.tar.gz
draw inside terminal size
Diffstat (limited to 'src/buffer/mod.rs')
-rw-r--r--src/buffer/mod.rs20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/buffer/mod.rs b/src/buffer/mod.rs
index 0a7e9ba..3cff6f5 100644
--- a/src/buffer/mod.rs
+++ b/src/buffer/mod.rs
@@ -1,6 +1,6 @@
mod threads;
-use crate::window::Window;
+use crate::window::{Area, Window};
use std::io::{Stdin, Write};
use termion::event::Key;
@@ -16,11 +16,17 @@ pub struct Client {
impl Client {
pub fn new<W: Write>(initial_buffer: Buffer, out: &mut W) -> Self {
+ let size = termion::terminal_size().unwrap();
let mut window = Window::new();
match &initial_buffer {
Buffer::Threads(t) => t.fill_window(&mut window),
}
- window.draw(out).unwrap();
+ window.draw(out, Area {
+ x: 1,
+ y: 1,
+ w: size.0,
+ h: size.1,
+ }).unwrap();
Self {
window,
buffers: vec![initial_buffer],
@@ -49,7 +55,15 @@ impl Client {
self.buffers.push(next_buffer);
}
- self.window.draw(out).unwrap();
+ write!(out, "{}", termion::clear::All).unwrap();
+
+ let size = termion::terminal_size().unwrap();
+ self.window.draw(out, Area {
+ x: 1,
+ y: 1,
+ w: size.0,
+ h: size.1,
+ }).unwrap();
}
}
}