From 19812b2d29e305927461c26651a3d228c22d928a Mon Sep 17 00:00:00 2001 From: nicm <nicm> Date: Fri, 6 Aug 2021 09:19:02 +0000 Subject: [PATCH] Add client focus hooks. --- options-table.c | 2 ++ tmux.1 | 4 ++++ tty-keys.c | 7 +++++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/options-table.c b/options-table.c index a4b85fd2..e0ae993a 100644 --- a/options-table.c +++ b/options-table.c @@ -1148,6 +1148,8 @@ const struct options_table_entry options_table[] = { OPTIONS_TABLE_HOOK("client-active", ""), OPTIONS_TABLE_HOOK("client-attached", ""), OPTIONS_TABLE_HOOK("client-detached", ""), + OPTIONS_TABLE_HOOK("client-focus-in", ""), + OPTIONS_TABLE_HOOK("client-focus-out", ""), OPTIONS_TABLE_HOOK("client-resized", ""), OPTIONS_TABLE_HOOK("client-session-changed", ""), OPTIONS_TABLE_PANE_HOOK("pane-died", ""), diff --git a/tmux.1 b/tmux.1 index 0abb4c76..00b90fe7 100644 --- a/tmux.1 +++ b/tmux.1 @@ -4402,6 +4402,10 @@ Run when a client becomes the latest active client of its session. Run when a client is attached. .It client-detached Run when a client is detached +.It client-focus-in +Run when focus enters a client +.It client-focus-out +Run when focus exits a client .It client-resized Run when a client is resized. .It client-session-changed diff --git a/tty-keys.c b/tty-keys.c index 3012be3d..02fba0e5 100644 --- a/tty-keys.c +++ b/tty-keys.c @@ -820,10 +820,13 @@ complete_key: tty->flags &= ~TTY_TIMER; /* Check for focus events. */ - if (key == KEYC_FOCUS_OUT) + if (key == KEYC_FOCUS_OUT) { tty->client->flags &= ~CLIENT_FOCUSED; - else if (key == KEYC_FOCUS_IN) + notify_client("client-focus-out", c); + } else if (key == KEYC_FOCUS_IN) { tty->client->flags |= CLIENT_FOCUSED; + notify_client("client-focus-in", c); + } /* Fire the key. */ if (key != KEYC_UNKNOWN) {