summarylogtreecommitdiffstats
path: root/fix-exit-regression.patch
diff options
context:
space:
mode:
authorFelipe Contreras2022-01-23 23:57:59 -0600
committerFelipe Contreras2022-01-23 23:58:43 -0600
commit3fcfcb909d672d1d40177f11769c1e97cc937695 (patch)
tree969734829b95c79a2b668dbe726f9f5b612beee6 /fix-exit-regression.patch
parent463b13e12aa9b2d19cbbeda07be533d4bb3f050d (diff)
downloadaur-3fcfcb909d672d1d40177f11769c1e97cc937695.tar.gz
Update patch
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Diffstat (limited to 'fix-exit-regression.patch')
-rw-r--r--fix-exit-regression.patch34
1 files changed, 23 insertions, 11 deletions
diff --git a/fix-exit-regression.patch b/fix-exit-regression.patch
index eeaf3afba227..a15d882899b8 100644
--- a/fix-exit-regression.patch
+++ b/fix-exit-regression.patch
@@ -1,6 +1,6 @@
-From 21514e6d4f38cdf4d5ce9186c2dcc8e6bb63ce15 Mon Sep 17 00:00:00 2001
+From 0552a83b044517a35f48c42fd8eed8b6eda09656 Mon Sep 17 00:00:00 2001
From: Felipe Contreras <felipe.contreras@gmail.com>
-Date: Sun, 6 Dec 2020 04:01:03 -0600
+Date: Sun, 23 Jan 2022 23:36:44 -0600
Subject: [PATCH] Fix exit regression
Any time you start a job in the background vte gets confused and waits
@@ -19,28 +19,40 @@ was reported more than one year ago.
https://gitlab.gnome.org/GNOME/vte/-/issues/204
-With this patch we can return to the behavior of 0.59, where the
-terminal exits immediately.
+We know the child has exited, the client does not. It's up to the client
+to decide if it was to wait for rest of the input, or exit immediately.
+
+So send the signal as soon as we receive it.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
- src/vte.cc | 3 +++
- 1 file changed, 3 insertions(+)
+ src/vte.cc | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/vte.cc b/src/vte.cc
-index 2614e5b4..ea80d1ee 100644
+index 103dc4d5..c47c10af 100644
--- a/src/vte.cc
+++ b/src/vte.cc
-@@ -3130,6 +3130,9 @@ Terminal::child_watch_done(pid_t pid,
+@@ -3200,6 +3200,9 @@ Terminal::child_watch_done(pid_t pid,
m_pty_pid = -1;
-+ if (pty())
-+ unset_pty();
++ if (widget())
++ widget()->emit_child_exited(status);
+
/* If we still have a PTY, or data to process, defer emitting the signals
* until we have EOF on the PTY, so that we can process all pending data.
*/
+@@ -3210,9 +3213,6 @@ Terminal::child_watch_done(pid_t pid,
+ m_child_exited_eos_wait_timer.schedule_seconds(2); // FIXME: better value?
+ } else {
+ m_child_exited_after_eos_pending = false;
+-
+- if (widget())
+- widget()->emit_child_exited(status);
+ }
+ }
+
--
-2.29.2
+2.34.1