aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer')
-rw-r--r--src/buffer/mod.rs20
-rw-r--r--src/buffer/threads.rs2
2 files changed, 19 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();
}
}
}
diff --git a/src/buffer/threads.rs b/src/buffer/threads.rs
index edc2339..49d9924 100644
--- a/src/buffer/threads.rs
+++ b/src/buffer/threads.rs
@@ -12,6 +12,7 @@ pub struct Threads {
query: String,
}
+#[derive(Clone)]
pub struct Thread {
subject: String,
authors: Vec<String>,
@@ -66,6 +67,7 @@ impl Threads {
.unwrap()
.map(Thread::new)
.collect();
+ self.threads.append(&mut self.threads.clone());
}
pub fn fill_window(&self, window: &mut Window) {