diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-10-08 12:39:51 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-10-08 12:39:51 -0400 |
commit | 267cfebb51a4c625cf769411e91280aaa542ff18 (patch) | |
tree | 0f57ea4be7c2acc56e1b1104c4057a5b5858a289 | |
parent | 4e7bc2fe9c92ca48676a760953a48d3bd4708489 (diff) | |
download | teleterm-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.rs | 9 | ||||
-rw-r--r-- | src/session_list.rs | 4 |
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()) |