Merge branch 'obsd-master'

This commit is contained in:
Thomas Adam 2020-01-13 14:01:25 +00:00
commit a01c9ffc6c
2 changed files with 18 additions and 0 deletions

1
tmux.h
View File

@ -1181,6 +1181,7 @@ LIST_HEAD(tty_terms, tty_term);
struct tty { struct tty {
struct client *client; struct client *client;
struct event start_timer;
u_int sx; u_int sx;
u_int sy; u_int sy;

17
tty.c
View File

@ -285,11 +285,22 @@ tty_open(struct tty *tty, char **cause)
return (0); return (0);
} }
static void
tty_start_timer_callback(__unused int fd, __unused short events, void *data)
{
struct tty *tty = data;
struct client *c = tty->client;
log_debug("%s: start timer fired", c->name);
tty->flags |= (TTY_HAVEDA|TTY_HAVEDSR);
}
void void
tty_start_tty(struct tty *tty) tty_start_tty(struct tty *tty)
{ {
struct client *c = tty->client; struct client *c = tty->client;
struct termios tio; struct termios tio;
struct timeval tv = { .tv_sec = 1 };
if (tty->fd != -1 && tcgetattr(tty->fd, &tty->tio) == 0) { if (tty->fd != -1 && tcgetattr(tty->fd, &tty->tio) == 0) {
setblocking(tty->fd, 0); setblocking(tty->fd, 0);
@ -328,9 +339,13 @@ tty_start_tty(struct tty *tty)
tty_puts(tty, "\033[?1004h"); tty_puts(tty, "\033[?1004h");
} }
tty_puts(tty, "\033[c\033[1337n"); /* DA and DSR */ tty_puts(tty, "\033[c\033[1337n"); /* DA and DSR */
} else } else
tty->flags |= (TTY_HAVEDA|TTY_HAVEDSR); tty->flags |= (TTY_HAVEDA|TTY_HAVEDSR);
evtimer_set(&tty->start_timer, tty_start_timer_callback, tty);
evtimer_add(&tty->start_timer, &tv);
tty->flags |= TTY_STARTED; tty->flags |= TTY_STARTED;
tty_invalidate(tty); tty_invalidate(tty);
@ -351,6 +366,8 @@ tty_stop_tty(struct tty *tty)
return; return;
tty->flags &= ~TTY_STARTED; tty->flags &= ~TTY_STARTED;
evtimer_del(&tty->start_timer);
event_del(&tty->timer); event_del(&tty->timer);
tty->flags &= ~TTY_BLOCK; tty->flags &= ~TTY_BLOCK;