mirror of
https://github.com/tmux/tmux.git
synced 2024-12-26 03:19:16 +00:00
Merge branch 'obsd-master'
This commit is contained in:
commit
1742138f05
@ -2766,6 +2766,7 @@ server_client_dispatch(struct imsg *imsg, void *arg)
|
|||||||
break;
|
break;
|
||||||
server_client_update_latest(c);
|
server_client_update_latest(c);
|
||||||
tty_resize(&c->tty);
|
tty_resize(&c->tty);
|
||||||
|
tty_repeat_requests(&c->tty);
|
||||||
recalculate_sizes();
|
recalculate_sizes();
|
||||||
if (c->overlay_resize == NULL)
|
if (c->overlay_resize == NULL)
|
||||||
server_client_clear_overlay(c);
|
server_client_clear_overlay(c);
|
||||||
|
6
tmux.h
6
tmux.h
@ -1417,6 +1417,7 @@ struct tty {
|
|||||||
struct client *client;
|
struct client *client;
|
||||||
struct event start_timer;
|
struct event start_timer;
|
||||||
struct event clipboard_timer;
|
struct event clipboard_timer;
|
||||||
|
time_t last_requests;
|
||||||
|
|
||||||
u_int sx;
|
u_int sx;
|
||||||
u_int sy;
|
u_int sy;
|
||||||
@ -1471,10 +1472,8 @@ struct tty {
|
|||||||
#define TTY_HAVEXDA 0x200
|
#define TTY_HAVEXDA 0x200
|
||||||
#define TTY_SYNCING 0x400
|
#define TTY_SYNCING 0x400
|
||||||
#define TTY_HAVEDA2 0x800 /* Secondary DA. */
|
#define TTY_HAVEDA2 0x800 /* Secondary DA. */
|
||||||
#define TTY_HAVEFG 0x1000
|
|
||||||
#define TTY_HAVEBG 0x2000
|
|
||||||
#define TTY_ALL_REQUEST_FLAGS \
|
#define TTY_ALL_REQUEST_FLAGS \
|
||||||
(TTY_HAVEDA|TTY_HAVEDA2|TTY_HAVEXDA|TTY_HAVEFG|TTY_HAVEBG)
|
(TTY_HAVEDA|TTY_HAVEDA2|TTY_HAVEXDA)
|
||||||
int flags;
|
int flags;
|
||||||
|
|
||||||
struct tty_term *term;
|
struct tty_term *term;
|
||||||
@ -2367,6 +2366,7 @@ void tty_resize(struct tty *);
|
|||||||
void tty_set_size(struct tty *, u_int, u_int, u_int, u_int);
|
void tty_set_size(struct tty *, u_int, u_int, u_int, u_int);
|
||||||
void tty_start_tty(struct tty *);
|
void tty_start_tty(struct tty *);
|
||||||
void tty_send_requests(struct tty *);
|
void tty_send_requests(struct tty *);
|
||||||
|
void tty_repeat_requests(struct tty *);
|
||||||
void tty_stop_tty(struct tty *);
|
void tty_stop_tty(struct tty *);
|
||||||
void tty_set_title(struct tty *, const char *);
|
void tty_set_title(struct tty *, const char *);
|
||||||
void tty_set_path(struct tty *, const char *);
|
void tty_set_path(struct tty *, const char *);
|
||||||
|
@ -1492,8 +1492,6 @@ tty_keys_colours(struct tty *tty, const char *buf, size_t len, size_t *size)
|
|||||||
int n;
|
int n;
|
||||||
|
|
||||||
*size = 0;
|
*size = 0;
|
||||||
if ((tty->flags & TTY_HAVEFG) && (tty->flags & TTY_HAVEBG))
|
|
||||||
return (-1);
|
|
||||||
|
|
||||||
/* First four bytes are always \033]1 and 0 or 1 and ;. */
|
/* First four bytes are always \033]1 and 0 or 1 and ;. */
|
||||||
if (buf[0] != '\033')
|
if (buf[0] != '\033')
|
||||||
@ -1539,11 +1537,9 @@ tty_keys_colours(struct tty *tty, const char *buf, size_t len, size_t *size)
|
|||||||
if (n != -1 && buf[3] == '0') {
|
if (n != -1 && buf[3] == '0') {
|
||||||
log_debug("%s: foreground is %s", c->name, colour_tostring(n));
|
log_debug("%s: foreground is %s", c->name, colour_tostring(n));
|
||||||
tty->fg = n;
|
tty->fg = n;
|
||||||
tty->flags |= TTY_HAVEFG;
|
|
||||||
} else if (n != -1) {
|
} else if (n != -1) {
|
||||||
log_debug("%s: background is %s", c->name, colour_tostring(n));
|
log_debug("%s: background is %s", c->name, colour_tostring(n));
|
||||||
tty->bg = n;
|
tty->bg = n;
|
||||||
tty->flags |= TTY_HAVEBG;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
|
22
tty.c
22
tty.c
@ -87,6 +87,7 @@ static void tty_write_one(void (*)(struct tty *, const struct tty_ctx *),
|
|||||||
#define TTY_BLOCK_STOP(tty) (1 + ((tty)->sx * (tty)->sy) / 8)
|
#define TTY_BLOCK_STOP(tty) (1 + ((tty)->sx * (tty)->sy) / 8)
|
||||||
|
|
||||||
#define TTY_QUERY_TIMEOUT 5
|
#define TTY_QUERY_TIMEOUT 5
|
||||||
|
#define TTY_REQUEST_LIMIT 30
|
||||||
|
|
||||||
void
|
void
|
||||||
tty_create_log(void)
|
tty_create_log(void)
|
||||||
@ -374,12 +375,29 @@ tty_send_requests(struct tty *tty)
|
|||||||
tty_puts(tty, "\033[>c");
|
tty_puts(tty, "\033[>c");
|
||||||
if (~tty->flags & TTY_HAVEXDA)
|
if (~tty->flags & TTY_HAVEXDA)
|
||||||
tty_puts(tty, "\033[>q");
|
tty_puts(tty, "\033[>q");
|
||||||
if (~tty->flags & TTY_HAVEFG)
|
|
||||||
tty_puts(tty, "\033]10;?\033\\");
|
tty_puts(tty, "\033]10;?\033\\");
|
||||||
if (~tty->flags & TTY_HAVEBG)
|
|
||||||
tty_puts(tty, "\033]11;?\033\\");
|
tty_puts(tty, "\033]11;?\033\\");
|
||||||
} else
|
} else
|
||||||
tty->flags |= TTY_ALL_REQUEST_FLAGS;
|
tty->flags |= TTY_ALL_REQUEST_FLAGS;
|
||||||
|
tty->last_requests = time (NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
tty_repeat_requests(struct tty *tty)
|
||||||
|
{
|
||||||
|
time_t t = time (NULL);
|
||||||
|
|
||||||
|
if (~tty->flags & TTY_STARTED)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (t - tty->last_requests <= TTY_REQUEST_LIMIT)
|
||||||
|
return;
|
||||||
|
tty->last_requests = t;
|
||||||
|
|
||||||
|
if (tty->term->flags & TERM_VT100LIKE) {
|
||||||
|
tty_puts(tty, "\033]10;?\033\\");
|
||||||
|
tty_puts(tty, "\033]11;?\033\\");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user