mirror of
https://github.com/tmux/tmux.git
synced 2026-02-13 17:30:43 +00:00
Conflict resolve.
This commit is contained in:
27
tty-draw.c
27
tty-draw.c
@@ -89,7 +89,7 @@ tty_draw_line_clear(struct tty *tty, u_int px, u_int py, u_int nx,
|
||||
|
||||
/* Is this cell empty? */
|
||||
static u_int
|
||||
tty_draw_line_get_empty(struct grid_cell *gc, u_int nx)
|
||||
tty_draw_line_get_empty(const struct grid_cell *gc, u_int nx)
|
||||
{
|
||||
u_int empty = 0;
|
||||
|
||||
@@ -169,11 +169,15 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int px, u_int py, u_int nx,
|
||||
break;
|
||||
}
|
||||
if (i == 0)
|
||||
bg = gc.bg;
|
||||
else if (screen_select_cell(s, &ngc, &gc))
|
||||
bg = ngc.bg;
|
||||
else
|
||||
bg = defaults->bg;
|
||||
else {
|
||||
bg = gc.bg;
|
||||
if (gc.flags & GRID_FLAG_SELECTED) {
|
||||
memcpy(&ngc, &gc, sizeof ngc);
|
||||
if (screen_select_cell(s, &ngc, &gc))
|
||||
bg = ngc.bg;
|
||||
}
|
||||
}
|
||||
tty_attributes(tty, &last, defaults, palette, s->hyperlinks);
|
||||
log_debug("%s: clearing %u padding cells", __func__, cx);
|
||||
tty_draw_line_clear(tty, atx, aty, cx, defaults, bg, 0);
|
||||
@@ -227,14 +231,17 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int px, u_int py, u_int nx,
|
||||
gcp = tty_check_codeset(tty, &gc);
|
||||
|
||||
/* And for selection. */
|
||||
if (screen_select_cell(s, &ngc, gcp))
|
||||
gcp = &ngc;
|
||||
if (gcp->flags & GRID_FLAG_SELECTED) {
|
||||
memcpy(&ngc, gcp, sizeof ngc);
|
||||
if (screen_select_cell(s, &ngc, gcp))
|
||||
gcp = &ngc;
|
||||
}
|
||||
|
||||
/* Work out the the empty width. */
|
||||
if (i >= ex)
|
||||
empty = 1;
|
||||
else
|
||||
empty = tty_draw_line_get_empty(&gc, nx - i);
|
||||
empty = tty_draw_line_get_empty(gcp, nx - i);
|
||||
|
||||
/* Work out the next state. */
|
||||
if (empty != 0)
|
||||
@@ -243,7 +250,7 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int px, u_int py, u_int nx,
|
||||
next_state = TTY_DRAW_LINE_SAME;
|
||||
else if (gcp->flags & GRID_FLAG_PADDING)
|
||||
next_state = TTY_DRAW_LINE_PAD;
|
||||
else if (grid_cells_look_equal(&gc, &last)) {
|
||||
else if (grid_cells_look_equal(gcp, &last)) {
|
||||
if (gcp->data.size > (sizeof buf) - len)
|
||||
next_state = TTY_DRAW_LINE_FLUSH;
|
||||
else
|
||||
@@ -303,7 +310,7 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int px, u_int py, u_int nx,
|
||||
if (empty != 0)
|
||||
i += empty;
|
||||
else
|
||||
i++;
|
||||
i += gcp->data.width;
|
||||
}
|
||||
|
||||
tty->flags = (tty->flags & ~TTY_NOCURSOR)|flags;
|
||||
|
||||
Reference in New Issue
Block a user