diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-30 11:35:25 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:17 -0300 |
| commit | 85728b391a0137f9c2b63c3234364b1f81f6be78 (patch) | |
| tree | 8a662845628d679cd383d925f40f66911588d7fa /src/ninep/ctl.zig | |
| parent | 5e8d2b7ac7d7880ac36ec45484b2711669ac7ae1 (diff) | |
| download | pardes-85728b391a0137f9c2b63c3234364b1f81f6be78.tar.gz pardes-85728b391a0137f9c2b63c3234364b1f81f6be78.zip | |
A word at /tagexec or a column's exec that makes, acts on and focuses no pane reads back nothing
Newcol written to /tagexec read back `1`, the pane with the keyboard, which
the word never touched. That was a pane word's fallback (a pane's exec
answers the pane it ran at) applied to a tag no pane owns. A word in a
column's or the workspace's tag now answers the pane it made, refilled, went
to or focused, and otherwise nothing.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/ninep/ctl.zig')
| -rw-r--r-- | src/ninep/ctl.zig | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/ninep/ctl.zig b/src/ninep/ctl.zig index d6230308..d86d6047 100644 --- a/src/ninep/ctl.zig +++ b/src/ninep/ctl.zig @@ -93,6 +93,12 @@ pub fn run(p: *Pardes, id: usize, exec: bool, text: []const u8, in_tag: bool) vo // touched. if (p.fs.refilled) |serial| if (p.paneBySerial(serial) != null) return noteResult(p, serial); if (went) |dst| if (p.panes[dst]) |pane| return noteResult(p, pane.serial); + // A word in a column's or the workspace's tag ran at no pane: it + // answers one only if it focused one (Newcol answers nothing). + if (p.exec_header) { + if (p.active != id) if (p.panes[p.active]) |pane| noteResult(p, pane.serial); + return; + } noteResult(p, if (exec) context else (p.panes[p.active] orelse return).serial); } |
