diff --git a/server-client.c b/server-client.c index e6d350ab..3c63a9d5 100644 --- a/server-client.c +++ b/server-client.c @@ -990,7 +990,6 @@ server_client_loop(void) */ focus = options_get_number(global_options, "focus-events"); RB_FOREACH(w, windows, &windows) { - w->flags &= ~WINDOW_REDRAW; TAILQ_FOREACH(wp, &w->panes, entry) { if (wp->fd != -1) { if (focus) @@ -1235,11 +1234,6 @@ server_client_check_redraw(struct client *c) tty_update_mode(tty, tty->mode, NULL); screen_redraw_screen(c, 1, 1, 1); c->flags &= ~(CLIENT_STATUS|CLIENT_BORDERS); - } else if (c->flags & CLIENT_REDRAWWINDOW) { - tty_update_mode(tty, tty->mode, NULL); - TAILQ_FOREACH(wp, &c->session->curw->window->panes, entry) - screen_redraw_pane(c, wp); - c->flags &= ~CLIENT_REDRAWWINDOW; } else { TAILQ_FOREACH(wp, &c->session->curw->window->panes, entry) { if (wp->flags & PANE_REDRAW) { diff --git a/server-fn.c b/server-fn.c index 5e67be51..0be7f70d 100644 --- a/server-fn.c +++ b/server-fn.c @@ -98,7 +98,6 @@ server_redraw_window(struct window *w) if (c->session != NULL && c->session->curw->window == w) server_redraw_client(c); } - w->flags |= WINDOW_REDRAW; } void diff --git a/tmux.h b/tmux.h index 12847f1e..3deab57d 100644 --- a/tmux.h +++ b/tmux.h @@ -820,7 +820,7 @@ struct window { int flags; #define WINDOW_BELL 0x1 #define WINDOW_ACTIVITY 0x2 -#define WINDOW_REDRAW 0x4 +/* 0x4 unused */ #define WINDOW_SILENCE 0x8 #define WINDOW_ZOOMED 0x1000 #define WINDOW_FORCEWIDTH 0x2000 @@ -1336,7 +1336,7 @@ struct client { #define CLIENT_DEAD 0x200 #define CLIENT_BORDERS 0x400 #define CLIENT_READONLY 0x800 -#define CLIENT_REDRAWWINDOW 0x1000 +/* 0x1000 unused */ #define CLIENT_CONTROL 0x2000 #define CLIENT_CONTROLCONTROL 0x4000 #define CLIENT_FOCUSED 0x8000 diff --git a/tty.c b/tty.c index 29211be8..43ea1749 100644 --- a/tty.c +++ b/tty.c @@ -720,7 +720,8 @@ tty_draw_line(struct tty *tty, const struct window_pane *wp, tty_putcode(tty, TTYC_EL1); cleared = 1; } - tty_cursor(tty, ox, oy + py); + if (sx != 0) + tty_cursor(tty, ox, oy + py); memcpy(&last, &grid_default_cell, sizeof last); len = 0; @@ -776,7 +777,6 @@ tty_draw_line(struct tty *tty, const struct window_pane *wp, if (!cleared && sx < tty->sx) { tty_default_attributes(tty, wp, 8); - tty_cursor(tty, ox + sx, oy + py); if (sx != screen_size_x(s) && ox + screen_size_x(s) >= tty->sx && @@ -816,9 +816,7 @@ tty_write(void (*cmdfn)(struct tty *, const struct tty_ctx *), if (wp == NULL) return; - if (wp->window->flags & WINDOW_REDRAW || wp->flags & PANE_REDRAW) - return; - if (!window_pane_visible(wp) || wp->flags & PANE_DROP) + if ((wp->flags & (PANE_REDRAW|PANE_DROP)) || !window_pane_visible(wp)) return; TAILQ_FOREACH(c, &clients, entry) {