scrollback: don't allow more scrolling when already at the top or bottom

This commit is contained in:
Daniel Eklöf 2019-07-10 14:42:48 +02:00
parent e01060caf9
commit a01efd07e3
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -44,14 +44,14 @@ cmd_scrollback_up(struct terminal *term, int rows)
if (end >= term->grid->offset) {
/* Not wrapped */
if (new_view >= term->grid->offset && new_view <= end)
new_view = end;
new_view = end + 1;
} else {
if (new_view >= term->grid->offset || new_view <= end)
new_view = end;
new_view = end + 1;
}
LOG_DBG("scrollback UP: %d -> %d (offset = %d, rows = %d)",
term->grid->view, new_view, term->grid->offset, term->grid->num_rows);
LOG_DBG("scrollback UP: %d -> %d (offset = %d, end = %d, rows = %d)",
term->grid->view, new_view, term->grid->offset, end, term->grid->num_rows);
if (new_view == term->grid->view)
return;
@ -71,6 +71,9 @@ cmd_scrollback_down(struct terminal *term, int rows)
if (term->grid == &term->alt)
return;
if (term->grid->view == term->grid->offset)
return;
rows = min(rows, term->grid->num_rows - term->rows);
assert(term->grid->offset >= 0);
@ -106,8 +109,8 @@ cmd_scrollback_down(struct terminal *term, int rows)
}
LOG_DBG("scrollback DOWN: %d -> %d (offset = %d, rows = %d)",
term->grid->view, new_view, term->grid->offset, term->grid->num_rows);
LOG_DBG("scrollback DOWN: %d -> %d (offset = %d, end = %d, rows = %d)",
term->grid->view, new_view, term->grid->offset, end, term->grid->num_rows);
if (new_view == term->grid->view)
return;