diff options
author | nicm <nicm> | 2017-02-06 19:26:49 +0000 |
---|---|---|
committer | nicm <nicm> | 2017-02-06 19:26:49 +0000 |
commit | 10e14ae504df467234284a1040e91d48b41b2dd0 (patch) | |
tree | d6a15fa4714dddc6a8698e1c536dcfe35becd588 | |
parent | e67548dc36fdb4454aded1c95bd35e2443191f94 (diff) | |
download | rtmux-10e14ae504df467234284a1040e91d48b41b2dd0.tar.gz rtmux-10e14ae504df467234284a1040e91d48b41b2dd0.tar.bz2 rtmux-10e14ae504df467234284a1040e91d48b41b2dd0.zip |
Add BCE for clear to start of screen, which was somehow missed.
-rw-r--r-- | input.c | 2 | ||||
-rw-r--r-- | screen-write.c | 9 | ||||
-rw-r--r-- | tmux.h | 2 | ||||
-rw-r--r-- | tty.c | 2 |
4 files changed, 8 insertions, 7 deletions
@@ -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); diff --git a/screen-write.c b/screen-write.c index 9acb0c03..fe8419e3 100644 --- a/screen-write.c +++ b/screen-write.c @@ -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); @@ -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 *); @@ -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); |