diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-22 15:16:14 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-22 15:20:00 -0500 |
commit | cc0ac6c8337e3dfea740feb0385d4a14e737d77c (patch) | |
tree | 760a62e92f97705dfe922ae026cb6f6d0cf82e95 /teleterm-web | |
parent | b6bfebb57804bc72fe1f85bcc050b548cb79a11d (diff) | |
download | teleterm-cc0ac6c8337e3dfea740feb0385d4a14e737d77c.tar.gz teleterm-cc0ac6c8337e3dfea740feb0385d4a14e737d77c.zip |
resize the browser terminal if the streamer terminal is resized
Diffstat (limited to 'teleterm-web')
-rw-r--r-- | teleterm-web/src/lib.rs | 3 | ||||
-rw-r--r-- | teleterm-web/src/model.rs | 6 | ||||
-rw-r--r-- | teleterm-web/src/protocol.rs | 3 |
3 files changed, 11 insertions, 1 deletions
diff --git a/teleterm-web/src/lib.rs b/teleterm-web/src/lib.rs index b2ad524..5d59f24 100644 --- a/teleterm-web/src/lib.rs +++ b/teleterm-web/src/lib.rs @@ -67,6 +67,9 @@ fn update( model.disconnect_watch(); orders.perform_cmd(model.list()); } + crate::protocol::Message::Resize { size } => { + model.set_size(size.rows, size.cols); + } } } ws::WebSocketEvent::Error(e) => { diff --git a/teleterm-web/src/model.rs b/teleterm-web/src/model.rs index 72ac8c3..ba707eb 100644 --- a/teleterm-web/src/model.rs +++ b/teleterm-web/src/model.rs @@ -67,6 +67,12 @@ impl Model { } } + pub fn set_size(&mut self, rows: u16, cols: u16) { + if let Some(conn) = &mut self.watch_conn { + conn.term.set_size(rows, cols); + } + } + pub fn screen(&self) -> Option<&vt100::Screen> { self.watch_conn.as_ref().map(|conn| conn.term.screen()) } diff --git a/teleterm-web/src/protocol.rs b/teleterm-web/src/protocol.rs index 60047e0..9c0c144 100644 --- a/teleterm-web/src/protocol.rs +++ b/teleterm-web/src/protocol.rs @@ -1,10 +1,11 @@ // it's possible we should just consider pulling the real protocol out into a // crate or something? but ideally in a way that doesn't require pulling in // tokio -#[derive(Debug, Clone, PartialEq, Eq, serde::Deserialize)] +#[derive(Clone, Debug, serde::Deserialize)] pub enum Message { TerminalOutput { data: Vec<u8> }, Disconnected, + Resize { size: Size }, } #[derive(Clone, Debug, serde::Deserialize)] |