diff --git a/ShhShell/Views/Terminal/SSHTerminalDelegate.swift b/ShhShell/Views/Terminal/SSHTerminalDelegate.swift index aca17a6..23db00f 100644 --- a/ShhShell/Views/Terminal/SSHTerminalDelegate.swift +++ b/ShhShell/Views/Terminal/SSHTerminalDelegate.swift @@ -23,10 +23,6 @@ final class SSHTerminalDelegate: TerminalView, Sendable, @preconcurrency Termina print(getTerminal().foregroundColor.colorCodable) applySelectedTheme() - - Task { - await startFeedLoop() - } } func restoreScrollback() async { @@ -74,6 +70,16 @@ final class SSHTerminalDelegate: TerminalView, Sendable, @preconcurrency Termina // TODO: selectedtext and cursor colors } + override func didMoveToWindow() { + super.didMoveToWindow() + if window != nil { + Task { + await restoreScrollback() + await startFeedLoop() + } + } + } + public override init(frame: CGRect) { super.init(frame: frame) terminalDelegate = self diff --git a/ShhShell/Views/Terminal/TerminalController.swift b/ShhShell/Views/Terminal/TerminalController.swift index e181f36..f65f5ad 100644 --- a/ShhShell/Views/Terminal/TerminalController.swift +++ b/ShhShell/Views/Terminal/TerminalController.swift @@ -19,9 +19,6 @@ struct TerminalController: UIViewRepresentable { func makeUIView(context: Context) -> TerminalView { if let sessionID = handler.sessionID { if let existing = container.sessions[sessionID] { - Task { - await existing.terminalView.restoreScrollback() - } return existing.terminalView } }