mirror of
https://github.com/tmux/tmux.git
synced 2025-04-22 20:38:48 +00:00
Set mode properly before and after redrawing, and don't bother
calculating cursor position if it won't be used.
This commit is contained in:
parent
a877a5d8c9
commit
a7a9460d27
@ -1681,7 +1681,7 @@ server_client_check_redraw(struct client *c)
|
|||||||
struct session *s = c->session;
|
struct session *s = c->session;
|
||||||
struct tty *tty = &c->tty;
|
struct tty *tty = &c->tty;
|
||||||
struct window_pane *wp;
|
struct window_pane *wp;
|
||||||
int needed, flags;
|
int needed, flags, mode = tty->mode;
|
||||||
struct timeval tv = { .tv_usec = 1000 };
|
struct timeval tv = { .tv_usec = 1000 };
|
||||||
static struct event ev;
|
static struct event ev;
|
||||||
size_t left;
|
size_t left;
|
||||||
@ -1732,6 +1732,7 @@ server_client_check_redraw(struct client *c)
|
|||||||
|
|
||||||
flags = tty->flags & (TTY_BLOCK|TTY_FREEZE|TTY_NOCURSOR);
|
flags = tty->flags & (TTY_BLOCK|TTY_FREEZE|TTY_NOCURSOR);
|
||||||
tty->flags = (tty->flags & ~(TTY_BLOCK|TTY_FREEZE)) | TTY_NOCURSOR;
|
tty->flags = (tty->flags & ~(TTY_BLOCK|TTY_FREEZE)) | TTY_NOCURSOR;
|
||||||
|
tty_update_mode(tty, mode, NULL);
|
||||||
|
|
||||||
if (~c->flags & CLIENT_REDRAWWINDOW) {
|
if (~c->flags & CLIENT_REDRAWWINDOW) {
|
||||||
/*
|
/*
|
||||||
@ -1752,8 +1753,9 @@ server_client_check_redraw(struct client *c)
|
|||||||
screen_redraw_screen(c);
|
screen_redraw_screen(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
tty->flags = (tty->flags & ~(TTY_FREEZE|TTY_NOCURSOR)) | flags;
|
tty->flags = (tty->flags & ~TTY_NOCURSOR) | (flags & TTY_NOCURSOR);
|
||||||
tty_update_mode(tty, tty->mode, NULL);
|
tty_update_mode(tty, mode, NULL);
|
||||||
|
tty->flags = (tty->flags & ~(TTY_BLOCK|TTY_FREEZE|TTY_NOCURSOR)) | flags;
|
||||||
|
|
||||||
c->flags &= ~(CLIENT_ALLREDRAWFLAGS|CLIENT_STATUSFORCE);
|
c->flags &= ~(CLIENT_ALLREDRAWFLAGS|CLIENT_STATUSFORCE);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user