aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/tmux.rs12
-rw-r--r--src/async.rs13
-rw-r--r--src/blocking.rs13
3 files changed, 30 insertions, 8 deletions
diff --git a/examples/tmux.rs b/examples/tmux.rs
index e6cd21e..1bd2c3f 100644
--- a/examples/tmux.rs
+++ b/examples/tmux.rs
@@ -255,6 +255,8 @@ impl State {
tm.clear();
let new_screen = window.vt.lock_arc().await.screen().clone();
tm.write(&new_screen.contents_formatted());
+ tm.write(&new_screen.input_mode_formatted());
+ tm.write(&new_screen.title_formatted());
self.draw_notifications(tm, &new_screen);
tm.refresh().await.unwrap();
}
@@ -263,9 +265,15 @@ impl State {
let window = self.current_window();
let old_screen = window.screen.clone();
let new_screen = window.vt.lock_arc().await.screen().clone();
- let diff = new_screen.contents_diff(&old_screen);
+ let contents_diff = new_screen.contents_diff(&old_screen);
+ let input_mode_diff = new_screen.input_mode_diff(&old_screen);
+ let title_diff = new_screen.title_diff(&old_screen);
+ let bells_diff = new_screen.bells_diff(&old_screen);
self.clear_notifications(tm, &old_screen);
- tm.write(&diff);
+ tm.write(&contents_diff);
+ tm.write(&input_mode_diff);
+ tm.write(&title_diff);
+ tm.write(&bells_diff);
self.draw_notifications(tm, &new_screen);
tm.refresh().await.unwrap();
self.current_window_mut().screen = new_screen;
diff --git a/src/async.rs b/src/async.rs
index 5861443..92a4f30 100644
--- a/src/async.rs
+++ b/src/async.rs
@@ -50,9 +50,16 @@ impl Textmode {
}
pub async fn refresh(&mut self) -> std::io::Result<()> {
- let diff = self.next().screen().contents_diff(self.cur().screen());
- self.write_stdout(&diff).await?;
- self.cur_mut().process(&diff);
+ let diffs = &[
+ self.next().screen().contents_diff(self.cur().screen()),
+ self.next().screen().input_mode_diff(self.cur().screen()),
+ self.next().screen().title_diff(self.cur().screen()),
+ self.next().screen().bells_diff(self.cur().screen()),
+ ];
+ for diff in diffs {
+ self.write_stdout(&diff).await?;
+ self.cur_mut().process(&diff);
+ }
Ok(())
}
diff --git a/src/blocking.rs b/src/blocking.rs
index fc608ad..538f051 100644
--- a/src/blocking.rs
+++ b/src/blocking.rs
@@ -44,9 +44,16 @@ impl Textmode {
}
pub fn refresh(&mut self) -> std::io::Result<()> {
- let diff = self.next().screen().contents_diff(self.cur().screen());
- self.write_stdout(&diff)?;
- self.cur_mut().process(&diff);
+ let diffs = &[
+ self.next().screen().contents_diff(self.cur().screen()),
+ self.next().screen().input_mode_diff(self.cur().screen()),
+ self.next().screen().title_diff(self.cur().screen()),
+ self.next().screen().bells_diff(self.cur().screen()),
+ ];
+ for diff in diffs {
+ self.write_stdout(&diff)?;
+ self.cur_mut().process(&diff);
+ }
Ok(())
}