summaryrefslogtreecommitdiff
path: root/src/detached/server.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-29 03:14:31 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commita7960117dfb83ad65a0466a96affbbb524936b7f (patch)
treea824bff6e91e0e0e3cf84e9ac88a12201d708f81 /src/detached/server.zig
parent6dfc6838c1c02978c026b650d69f87f23e3ff81c (diff)
downloadpardes-a7960117dfb83ad65a0466a96affbbb524936b7f.tar.gz
pardes-a7960117dfb83ad65a0466a96affbbb524936b7f.zip
A detached session with no frontend takes its size from the root ctl
A --detach session nobody is attached to stayed 80x24, too small for an agent's panes, and nothing could change it. The root ctl takes size <cols> <rows> while no frontend is attached (refused while one owns the size), and a client that attaches later still sets its own (the server compares with the core's size). Documented with the 80x24 default. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/detached/server.zig')
-rw-r--r--src/detached/server.zig4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/detached/server.zig b/src/detached/server.zig
index 8f45135a..af299051 100644
--- a/src/detached/server.zig
+++ b/src/detached/server.zig
@@ -1076,7 +1076,9 @@ pub const Session = struct {
rows = if (rows == 0) c.rows else @min(rows, c.rows);
}
var regridded = false;
- if (cols != 0 and (cols != s.cols or rows != s.rows)) {
+ // Against the core's size too: a root ctl `size` may have set it
+ // while nobody was attached.
+ if (cols != 0 and (cols != s.cols or rows != s.rows or cols != s.core.screen_w or rows != s.core.screen_h)) {
s.cols = cols;
s.rows = rows;
for (&s.clients) |*c| c.need_full = true;