mirror of
https://github.com/tmux/tmux.git
synced 2024-12-12 17:38:48 +00:00
Add BCE for clear to start of screen, which was somehow missed.
This commit is contained in:
parent
e67548dc36
commit
10e14ae504
2
input.c
2
input.c
@ -1330,7 +1330,7 @@ input_csi_dispatch(struct input_ctx *ictx)
|
||||
screen_write_clearendofscreen(sctx, ictx->cell.cell.bg);
|
||||
break;
|
||||
case 1:
|
||||
screen_write_clearstartofscreen(sctx);
|
||||
screen_write_clearstartofscreen(sctx, ictx->cell.cell.bg);
|
||||
break;
|
||||
case 2:
|
||||
screen_write_clearscreen(sctx, ictx->cell.cell.bg);
|
||||
|
@ -971,24 +971,25 @@ screen_write_clearendofscreen(struct screen_write_ctx *ctx, u_int bg)
|
||||
|
||||
/* Clear to start of screen. */
|
||||
void
|
||||
screen_write_clearstartofscreen(struct screen_write_ctx *ctx)
|
||||
screen_write_clearstartofscreen(struct screen_write_ctx *ctx, u_int bg)
|
||||
{
|
||||
struct screen *s = ctx->s;
|
||||
struct tty_ctx ttyctx;
|
||||
u_int sx = screen_size_x(s);
|
||||
|
||||
screen_write_initctx(ctx, &ttyctx);
|
||||
ttyctx.bg = bg;
|
||||
|
||||
if (s->cy > 0) {
|
||||
screen_dirty_clear(s, 0, 0, sx - 1, s->cy);
|
||||
grid_view_clear(s->grid, 0, 0, sx, s->cy, 8);
|
||||
grid_view_clear(s->grid, 0, 0, sx, s->cy, bg);
|
||||
}
|
||||
if (s->cx > sx - 1) {
|
||||
screen_dirty_clear(s, 0, s->cy, sx - 1, s->cy);
|
||||
grid_view_clear(s->grid, 0, s->cy, sx, 1, 8);
|
||||
grid_view_clear(s->grid, 0, s->cy, sx, 1, bg);
|
||||
} else {
|
||||
screen_dirty_clear(s, 0, s->cy, s->cx, s->cy);
|
||||
grid_view_clear(s->grid, 0, s->cy, s->cx + 1, 1, 8);
|
||||
grid_view_clear(s->grid, 0, s->cy, s->cx + 1, 1, bg);
|
||||
}
|
||||
|
||||
tty_write(tty_cmd_clearstartofscreen, &ttyctx);
|
||||
|
2
tmux.h
2
tmux.h
@ -1992,7 +1992,7 @@ void screen_write_scrollregion(struct screen_write_ctx *, u_int, u_int);
|
||||
void screen_write_linefeed(struct screen_write_ctx *, int);
|
||||
void screen_write_carriagereturn(struct screen_write_ctx *);
|
||||
void screen_write_clearendofscreen(struct screen_write_ctx *, u_int);
|
||||
void screen_write_clearstartofscreen(struct screen_write_ctx *);
|
||||
void screen_write_clearstartofscreen(struct screen_write_ctx *, u_int);
|
||||
void screen_write_clearscreen(struct screen_write_ctx *, u_int);
|
||||
void screen_write_clearhistory(struct screen_write_ctx *);
|
||||
void screen_write_cell(struct screen_write_ctx *, const struct grid_cell *);
|
||||
|
2
tty.c
2
tty.c
@ -1057,7 +1057,7 @@ tty_cmd_clearstartofscreen(struct tty *tty, const struct tty_ctx *ctx)
|
||||
struct screen *s = wp->screen;
|
||||
u_int i, j;
|
||||
|
||||
tty_attributes(tty, &grid_default_cell, wp);
|
||||
tty_default_attributes(tty, wp, ctx->bg);
|
||||
|
||||
tty_region_pane(tty, ctx, 0, screen_size_y(s) - 1);
|
||||
tty_margin_off(tty);
|
||||
|
Loading…
Reference in New Issue
Block a user