mirror of
https://github.com/tmux/tmux.git
synced 2024-11-18 10:28:54 +00:00
Stop handling DA and DSR after a second (they should be the first thing
sent) so this should be plenty.
This commit is contained in:
parent
835a6c0cf0
commit
da515570dc
1
tmux.h
1
tmux.h
@ -1179,6 +1179,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
17
tty.c
@ -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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user