aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-10-08 12:39:51 -0400
committerJesse Luehrs <doy@tozt.net>2019-10-08 12:39:51 -0400
commit267cfebb51a4c625cf769411e91280aaa542ff18 (patch)
tree0f57ea4be7c2acc56e1b1104c4057a5b5858a289
parent4e7bc2fe9c92ca48676a760953a48d3bd4708489 (diff)
downloadteleterm-267cfebb51a4c625cf769411e91280aaa542ff18.tar.gz
teleterm-267cfebb51a4c625cf769411e91280aaa542ff18.zip
update the watcher size state on resize events
otherwise redrawing doesn't actually do anything
-rw-r--r--src/cmd/watch.rs9
-rw-r--r--src/session_list.rs4
2 files changed, 9 insertions, 4 deletions
diff --git a/src/cmd/watch.rs b/src/cmd/watch.rs
index 4e06a85..ba14e59 100644
--- a/src/cmd/watch.rs
+++ b/src/cmd/watch.rs
@@ -349,8 +349,9 @@ impl WatchSession {
Ok(false)
}
- fn resize(&mut self) -> Result<()> {
- if let State::Choosing { .. } = &self.state {
+ fn resize(&mut self, size: crate::term::Size) -> Result<()> {
+ if let State::Choosing { sessions, .. } = &mut self.state {
+ sessions.resize(size);
self.needs_redraw = true;
}
Ok(())
@@ -433,8 +434,8 @@ impl WatchSession {
crate::client::Event::ServerMessage(msg) => {
self.list_server_message(msg)?;
}
- crate::client::Event::Resize(_) => {
- self.resize()?;
+ crate::client::Event::Resize(size) => {
+ self.resize(size)?;
}
}
Ok(crate::component_future::Poll::DidWork)
diff --git a/src/session_list.rs b/src/session_list.rs
index e6cf425..97ddef1 100644
--- a/src/session_list.rs
+++ b/src/session_list.rs
@@ -174,6 +174,10 @@ impl SessionList {
Ok(())
}
+ pub fn resize(&mut self, size: crate::term::Size) {
+ self.size = size;
+ }
+
pub fn id_for(&self, c: char) -> Option<&str> {
self.char_to_idx(c).and_then(|i| {
self.sessions.get(i + self.offset).map(|s| s.id.as_ref())