render: always do a full repaint if last buffer’s dimension doesn’t match

This commit is contained in:
Daniel Eklöf 2021-05-10 17:56:35 +02:00
parent 51dec651f4
commit dc4f60fd4f
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -2196,6 +2196,8 @@ grid_render(struct terminal *term)
dirty_cursor(term);
if (term->render.last_buf == NULL ||
term->render.last_buf->width != buf->width ||
term->render.last_buf->height != buf->height ||
term->flash.active || term->render.was_flashing ||
term->is_searching != term->render.was_searching ||
term->render.margins)
@ -2205,16 +2207,15 @@ grid_render(struct terminal *term)
else if (buf->age > 0) {
LOG_DBG("buffer age: %u", buf->age);
xassert(term->render.last_buf != buf);
if (term->render.last_buf->width == buf->width &&
term->render.last_buf->height == buf->height)
{
gettimeofday(&start_double_buffering, NULL);
reapply_old_damage(term, buf, term->render.last_buf);
gettimeofday(&stop_double_buffering, NULL);
} else
force_full_repaint(term, buf);
xassert(term->render.last_buf != NULL);
xassert(term->render.last_buf != buf);
xassert(term->render.last_buf->width == buf->width);
xassert(term->render.last_buf->height == buf->height);
gettimeofday(&start_double_buffering, NULL);
reapply_old_damage(term, buf, term->render.last_buf);
gettimeofday(&stop_double_buffering, NULL);
}
if (term->render.last_buf != NULL) {