diff options
Diffstat (limited to 'src/pardes.zig')
| -rw-r--r-- | src/pardes.zig | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/pardes.zig b/src/pardes.zig index 8fb0b43d..f647ed00 100644 --- a/src/pardes.zig +++ b/src/pardes.zig @@ -939,9 +939,12 @@ pub const Pardes = struct { const pane = p.panes[o.pane] orelse return; pane.tty_stream.appendSlice(p.gpa, o.bytes) catch {}; pane.stream.nextSlice(o.bytes); - // follow new output to the bottom — except in the pane being - // actively navigated in a text mode. - if (!(o.pane == p.active and pane.mode != .tty)) + // follow new output to the bottom only in tty mode; in + // normal/insert the user is reading scrollback and the view + // holds still while output streams in. Tag edits hijack + // pane.mode to insert — the body mode sits in tag_mode. + const bmode = if (pane.tag_edit) pane.tag_mode else pane.mode; + if (bmode == .tty) pane.vt.screens.active.scroll(.active); }, .eof => |e| p.removePane(e.pane), |
