aboutsummaryrefslogtreecommitdiffstats
path: root/teleterm-web
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-22 15:16:14 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-22 15:20:00 -0500
commitcc0ac6c8337e3dfea740feb0385d4a14e737d77c (patch)
tree760a62e92f97705dfe922ae026cb6f6d0cf82e95 /teleterm-web
parentb6bfebb57804bc72fe1f85bcc050b548cb79a11d (diff)
downloadteleterm-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.rs3
-rw-r--r--teleterm-web/src/model.rs6
-rw-r--r--teleterm-web/src/protocol.rs3
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)]