aboutsummaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
authorKunal Mohan <kunalmohan99@gmail.com>2021-05-13 18:37:59 +0530
committerKunal Mohan <kunalmohan99@gmail.com>2021-05-15 22:18:29 +0530
commit050d846b5e41851d4ff5e8a4bbd7f24c72754507 (patch)
treece50f8ab9e6e514e8503b2a52a37f0b640af236a /src/client
parentFix after rebase (diff)
downloadsl0ppij-050d846b5e41851d4ff5e8a4bbd7f24c72754507.tar.gz
sl0ppij-050d846b5e41851d4ff5e8a4bbd7f24c72754507.tar.xz
sl0ppij-050d846b5e41851d4ff5e8a4bbd7f24c72754507.zip
clean and exit on window close
Diffstat (limited to 'src/client')
-rw-r--r--src/client/mod.rs27
1 files changed, 19 insertions, 8 deletions
diff --git a/src/client/mod.rs b/src/client/mod.rs
index 2fada592..862c13cc 100644
--- a/src/client/mod.rs
+++ b/src/client/mod.rs
@@ -132,15 +132,26 @@ pub fn start_client(mut os_input: Box<dyn ClientOsApi>, opts: CliArgs, config: C
.name("signal_listener".to_string())
.spawn({
let os_input = os_input.clone();
+ let send_client_instructions = send_client_instructions.clone();
move || {
- os_input.receive_sigwinch(Box::new({
- let os_api = os_input.clone();
- move || {
- os_api.send_to_server(ClientToServerMsg::TerminalResize(
- os_api.get_terminal_size_using_fd(0),
- ));
- }
- }));
+ os_input.handle_signals(
+ Box::new({
+ let os_api = os_input.clone();
+ move || {
+ os_api.send_to_server(ClientToServerMsg::TerminalResize(
+ os_api.get_terminal_size_using_fd(0),
+ ));
+ }
+ }),
+ Box::new({
+ let send_client_instructions = send_client_instructions.clone();
+ move || {
+ send_client_instructions
+ .send(ClientInstruction::Exit)
+ .unwrap()
+ }
+ }),
+ );
}
})
.unwrap();