diff options
| author | Kunal Mohan <kunalmohan99@gmail.com> | 2021-05-13 18:37:59 +0530 |
|---|---|---|
| committer | Kunal Mohan <kunalmohan99@gmail.com> | 2021-05-15 22:18:29 +0530 |
| commit | 050d846b5e41851d4ff5e8a4bbd7f24c72754507 (patch) | |
| tree | ce50f8ab9e6e514e8503b2a52a37f0b640af236a /src/client | |
| parent | Fix after rebase (diff) | |
| download | sl0ppij-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.rs | 27 |
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(); |
