From c2a1b54651be6b2532d48825d913b747a0edbea8 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Wed, 30 Sep 2026 20:55:53 -0300 Subject: A pane's tagexec goes to the event reader holding the pane as an x record, as acme's tag clicks do, not run past it A real click in a held pane's tag was already told to the reader, but the same click written to the pane's tagexec ran at once, so a script holding the pane could not intercept it. The line is now an x record (l for a look), done when the reader writes it back. A column's or the workspace's tag is still no pane's and runs as before. Co-Authored-By: Claude Opus 5.5 --- src/ninep/pane.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/ninep/pane.zig') diff --git a/src/ninep/pane.zig b/src/ninep/pane.zig index ce6d0422..d276b771 100644 --- a/src/ninep/pane.zig +++ b/src/ninep/pane.zig @@ -580,7 +580,8 @@ pub fn write(p: *Pardes, req: Req, id: usize, pane: *Pane, file: PaneFile) Reply .sel => writeSel(p, req, pane), .dirty, .mark, .scroll => writeFlag(p, req, pane, file), .look, .exec => ctl.command(p, req, pane.serial, file == .exec, false), - // A click in its tag: never an event reader's to hear (cols.writeExec). + // A click in its tag: an event reader holding the pane hears it as + // an `x` record (ctl.run), as acme's tag clicks are. .tagexec => ctl.command(p, req, pane.serial, true, true), .event => events.writeEvent(p, req, id), .errors => if (appendErrors(p, id, req.data)) |took| -- cgit v1.3