Merge branch 'obsd-master'

This commit is contained in:
Thomas Adam 2019-07-16 13:02:24 +01:00
commit b749a39cdb
2 changed files with 18 additions and 11 deletions

View File

@ -214,7 +214,6 @@ grid_view_delete_cells(struct grid *gd, u_int px, u_int py, u_int nx, u_int bg)
sx = grid_view_x(gd, gd->sx); sx = grid_view_x(gd, gd->sx);
grid_move_cells(gd, px, px + nx, py, sx - px - nx, bg); grid_move_cells(gd, px, px + nx, py, sx - px - nx, bg);
grid_clear(gd, sx - nx, py, px + nx - (sx - nx), 1, bg);
} }
/* Convert cells into a string. */ /* Convert cells into a string. */

28
grid.c
View File

@ -547,7 +547,7 @@ void
grid_clear(struct grid *gd, u_int px, u_int py, u_int nx, u_int ny, u_int bg) grid_clear(struct grid *gd, u_int px, u_int py, u_int nx, u_int ny, u_int bg)
{ {
struct grid_line *gl; struct grid_line *gl;
u_int xx, yy; u_int xx, yy, ox, sx;
if (nx == 0 || ny == 0) if (nx == 0 || ny == 0)
return; return;
@ -564,16 +564,20 @@ grid_clear(struct grid *gd, u_int px, u_int py, u_int nx, u_int ny, u_int bg)
for (yy = py; yy < py + ny; yy++) { for (yy = py; yy < py + ny; yy++) {
gl = &gd->linedata[yy]; gl = &gd->linedata[yy];
if (px + nx >= gd->sx && px < gl->cellused)
gl->cellused = px; sx = gd->sx;
if (px > gl->cellsize && COLOUR_DEFAULT(bg)) if (sx > gl->cellsize)
continue; sx = gl->cellsize;
if (px + nx >= gl->cellsize && COLOUR_DEFAULT(bg)) { ox = nx;
gl->cellsize = px; if (COLOUR_DEFAULT(bg)) {
continue; if (px > sx)
continue;
if (px + nx > sx)
ox = sx - px;
} }
grid_expand_line(gd, yy, px + nx, 8); /* default bg first */
for (xx = px; xx < px + nx; xx++) grid_expand_line(gd, yy, px + ox, 8); /* default bg first */
for (xx = px; xx < px + ox; xx++)
grid_clear_cell(gd, xx, yy, bg); grid_clear_cell(gd, xx, yy, bg);
} }
} }
@ -1216,6 +1220,10 @@ grid_reflow(struct grid *gd, u_int sx)
struct grid_cell gc; struct grid_cell gc;
u_int yy, width, i, at, first; u_int yy, width, i, at, first;
/* Do not reflow to the same size. */
if (sx == gd->sx)
return;
/* /*
* Create a destination grid. This is just used as a container for the * Create a destination grid. This is just used as a container for the
* line data and may not be fully valid. * line data and may not be fully valid.