diff options
author | Kirill Bulatov <mail4score@gmail.com> | 2024-03-09 13:32:32 +0200 |
---|---|---|
committer | Josh Rahm <rahm@google.com> | 2024-08-14 15:41:13 -0600 |
commit | 79a497b1766ffd7806d020ae37fa9d1a1b379fbf (patch) | |
tree | eae237a4fac4dd6055a19d2bdf701b0be17a1d69 /alacritty_terminal/src/event_loop.rs | |
parent | 6104c2f780d6e217b4af40dd6e7bb38bff20e95c (diff) | |
download | r-alacritty-79a497b1766ffd7806d020ae37fa9d1a1b379fbf.tar.gz r-alacritty-79a497b1766ffd7806d020ae37fa9d1a1b379fbf.tar.bz2 r-alacritty-79a497b1766ffd7806d020ae37fa9d1a1b379fbf.zip |
Send exit code events on child process exit
Fixes #7753.
Diffstat (limited to 'alacritty_terminal/src/event_loop.rs')
-rw-r--r-- | alacritty_terminal/src/event_loop.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/alacritty_terminal/src/event_loop.rs b/alacritty_terminal/src/event_loop.rs index 42025b00..929c642d 100644 --- a/alacritty_terminal/src/event_loop.rs +++ b/alacritty_terminal/src/event_loop.rs @@ -259,7 +259,11 @@ where for event in events.iter() { match event.key { tty::PTY_CHILD_EVENT_TOKEN => { - if let Some(tty::ChildEvent::Exited) = self.pty.next_child_event() { + if let Some(tty::ChildEvent::Exited(code)) = self.pty.next_child_event() + { + if let Some(code) = code { + self.event_proxy.send_event(Event::ChildExit(code)); + } if self.hold { // With hold enabled, make sure the PTY is drained. let _ = self.pty_read(&mut state, &mut buf, pipe.as_mut()); @@ -267,7 +271,6 @@ where // Without hold, shutdown the terminal. self.terminal.lock().exit(); } - self.event_proxy.send_event(Event::Wakeup); break 'event_loop; } |