diff --git a/options-table.c b/options-table.c index 1341ed2e..0555d43e 100644 --- a/options-table.c +++ b/options-table.c @@ -306,7 +306,7 @@ const struct options_table_entry options_table[] = { .type = OPTIONS_TABLE_STRING, .scope = OPTIONS_TABLE_SERVER, .flags = OPTIONS_TABLE_IS_ARRAY, - .default_str = "xterm*:clipboard:ccolour:cstyle:title," + .default_str = "xterm*:clipboard:ccolour:cstyle:focus:title," "screen*:title", .separator = ",", .text = "List of terminal features, used if they cannot be " diff --git a/server-client.c b/server-client.c index 59b6a6c5..de81e5ee 100644 --- a/server-client.c +++ b/server-client.c @@ -1284,7 +1284,7 @@ forward_key: window_pane_key(wp, c, s, wl, key, m); out: - if (s != NULL) + if (s != NULL && key != KEYC_FOCUS_OUT) server_client_update_latest(c); free(event); return (CMD_RETURN_NORMAL); diff --git a/tty-keys.c b/tty-keys.c index 5a2b3817..bbd4bb5f 100644 --- a/tty-keys.c +++ b/tty-keys.c @@ -800,13 +800,10 @@ 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; - return (1); - } else if (key == KEYC_FOCUS_IN) { + else if (key == KEYC_FOCUS_IN) tty->client->flags |= CLIENT_FOCUSED; - return (1); - } /* Fire the key. */ if (key != KEYC_UNKNOWN) { diff --git a/tty.c b/tty.c index 770c8b78..d330cbc0 100644 --- a/tty.c +++ b/tty.c @@ -467,7 +467,7 @@ tty_update_features(struct tty *tty) if (options_get_number(global_options, "extended-keys")) tty_puts(tty, tty_term_string(tty->term, TTYC_ENEKS)); if (options_get_number(global_options, "focus-events")) - tty_raw(tty, tty_term_string(tty->term, TTYC_ENFCS)); + tty_puts(tty, tty_term_string(tty->term, TTYC_ENFCS)); if (tty->term->flags & TERM_VT100LIKE) tty_puts(tty, "\033[?7727h"); }