aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--options-table.c2
-rw-r--r--tmux.14
-rw-r--r--tty-keys.c7
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) {