From 75180cea37e84167c1b9e125c0d7b7a7ef778ab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Mon, 23 Mar 2020 20:15:53 +0100 Subject: [PATCH] render: scroll: take margins into account when restoring bottom scroll region --- render.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/render.c b/render.c index 34777c12..2b8953b1 100644 --- a/render.c +++ b/render.c @@ -624,16 +624,16 @@ grid_render_scroll(struct terminal *term, struct buffer *buf, if (dmg->scroll.region.end < term->rows) { int src = dmg->scroll.region.end - dmg->scroll.lines; int dst = dmg->scroll.region.end; - size_t amount = max(0, term->rows - dmg->scroll.region.end); + size_t amount = term->rows - dmg->scroll.region.end; LOG_DBG("memmoving %zu lines of scroll region", amount); - assert(src >= 0); uint8_t *raw = buf->mmapped; - memmove(raw + dst * term->cell_height * buf->stride, - raw + src * term->cell_height * buf->stride, - amount * term->cell_height * buf->stride); + memmove( + raw + (term->margins.top + dst * term->cell_height) * buf->stride, + raw + (term->margins.top + src * term->cell_height) * buf->stride, + amount * term->cell_height * buf->stride); } /* Restore margins */