summaryrefslogtreecommitdiff
path: root/src/host.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/host.zig')
-rw-r--r--src/host.zig10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/host.zig b/src/host.zig
index 9ca882b1..b6ccff34 100644
--- a/src/host.zig
+++ b/src/host.zig
@@ -66,6 +66,16 @@ pub const Host = struct {
/// capability handshake landing, gamepad state.
push_poll_frame: ?*const fn (ctx: ?*anyopaque) void = null,
+ // ---- this frontend's own membership ----
+ /// `Detach` — leave the session, which carries on for everybody else.
+ /// Only a DETACHED core's host implements it, and the null case is the
+ /// point rather than an oversight: a local tty or SDL shell has no
+ /// session to leave, so the core reports that on the pane's row (see
+ /// `perform`) instead of quietly quitting something. Argumentless like
+ /// the two frame pushes above, because the host serving it already
+ /// knows whose keystroke arrived — it is the one that delivered it.
+ push_detach: ?*const fn (ctx: ?*anyopaque) void = null,
+
// ---- pseudo-terminals ----
push_spawn: ?*const fn (ctx: ?*anyopaque, pane: u8, cwd: []const u8) void = null,
push_pty_write: ?*const fn (ctx: ?*anyopaque, pane: u8, bytes: []const u8) void = null,