diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-29 06:16:52 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:16 -0300 |
| commit | c78641fdbe931ca2e6e87eb3e001bd021c1eba3f (patch) | |
| tree | 340b3c2a74c88777c3078533709efaad0e25a198 /src/pardes.zig | |
| parent | 4dc55f7e3ae8232e6994b92e6b1948bd8c190baf (diff) | |
| download | pardes-c78641fdbe931ca2e6e87eb3e001bd021c1eba3f.tar.gz pardes-c78641fdbe931ca2e6e87eb3e001bd021c1eba3f.zip | |
A pty/ctl winsize gives a terminal two rows at least, so it no longer reads busy for ever
A one-row pty loses the prompt's input mark as soon as the prompt wraps,
and busy detection never sees the shell idle again. Placement already
keeps a new terminal at tag + 2 rows; a winsize write now keeps the pty
at two. A pane dragged down to one body row keeps a one-row pty, since
a taller pty than the pane shows would put its cursor below the pane.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/pardes.zig')
| -rw-r--r-- | src/pardes.zig | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/pardes.zig b/src/pardes.zig index dd9d91c8..6341de91 100644 --- a/src/pardes.zig +++ b/src/pardes.zig @@ -6596,7 +6596,10 @@ pub const Pardes = struct { pane.tag_top = @intCast(@min(top, lines - pane.tag_rows)); } else pane.tag_top = 0; const cols = @max(1, r.w -| config.GUTTER); - const rows = @max(1, r.h -| pane.tag_rows); // the tag steals the top rows + // The tag steals the top rows. The pty is what the pane shows, + // even one row dragged short: a taller pty would put its cursor + // below the pane (only winsize keeps two, ctlfs.pty). + const rows = @max(1, r.h -| pane.tag_rows); // A terminal's pty follows its pane down to a row, whatever the // resize; only a folded one keeps the size it had, and one not // placed yet the grid it was made with. |
