Fix terminal input modes persisting after ssh remote connection breaking
This commit is contained in:
@@ -200,7 +200,29 @@ class TerminalSession: NSObject, ObservableObject, LocalProcessDelegate, @precon
|
||||
// MARK: - LocalProcessDelegate
|
||||
|
||||
nonisolated func processTerminated(_ source: LocalProcess, exitCode: Int32?) {
|
||||
Task { @MainActor in self.isRunning = false }
|
||||
Task { @MainActor in
|
||||
self.isRunning = false
|
||||
self.resetTerminalModes()
|
||||
}
|
||||
}
|
||||
|
||||
private func resetTerminalModes() {
|
||||
let resetSequences: [[UInt8]] = [
|
||||
Array("\u{1b}[?9l".utf8),
|
||||
Array("\u{1b}[?1000l".utf8),
|
||||
Array("\u{1b}[?1002l".utf8),
|
||||
Array("\u{1b}[?1003l".utf8),
|
||||
Array("\u{1b}[?1006l".utf8),
|
||||
Array("\u{1b}[?1015l".utf8),
|
||||
Array("\u{1b}[?2004l".utf8),
|
||||
Array("\u{1b}[?1l".utf8),
|
||||
Array("\u{1b}[?1049l".utf8),
|
||||
Array("\u{1b}[?25h".utf8),
|
||||
]
|
||||
|
||||
for seq in resetSequences {
|
||||
terminalView.feed(byteArray: seq[...])
|
||||
}
|
||||
}
|
||||
|
||||
nonisolated func dataReceived(slice: ArraySlice<UInt8>) {
|
||||
|
||||
Reference in New Issue
Block a user